diff options
Diffstat (limited to '')
-rw-r--r-- | src/ft_get_sprite.c | 105 |
1 files changed, 26 insertions, 79 deletions
diff --git a/src/ft_get_sprite.c b/src/ft_get_sprite.c index 902ab87..ed44d9b 100644 --- a/src/ft_get_sprite.c +++ b/src/ft_get_sprite.c @@ -15,66 +15,6 @@ #include <stdint.h> #include <stdio.h> -void - ft_get_next_sprite(t_cub *clist, int s_n, char c) -{ - size_t x; - size_t y; - uint8_t i; - - x = 0; - y = 0; - i = 0; - while (clist->mlist.map[++y]) - { - while (clist->mlist.map[y][++x]) - { - if (clist->mlist.map[y][x] == c) - { - clist->mlist.sprite_nbr++; - clist->sprites[s_n][i].s_pos_x = x; - clist->sprites[s_n][i].s_pos_y = y; - i++; - } - } - x = 0; - } - if (clist->sprites[s_n][i - 1].s_pos_x != 0) - { - ft_get_next_sprite(clist, s_n + 1, c + 1); - clist->mlist.sprite_var++; - } -} - -void - ft_get_sprite_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 (ft_ischarset("2", clist->mlist.map[y][x])) - { - clist->mlist.sprite_nbr++; - clist->sprites[0][i].s_pos_x = x; - clist->sprites[0][i].s_pos_y = y; - i++; - ft_get_next_sprite(clist, 1, '3'); - } - x++; - } - x = 1; - y++; - } -} - static int8_t ft_get_sprite_id(char *word) { @@ -82,13 +22,13 @@ static int8_t char ref[8][3]; ft_sprintf(ref[0], "S"); - ft_sprintf(ref[1], "S2"); - ft_sprintf(ref[2], "S3"); - ft_sprintf(ref[3], "S4"); - ft_sprintf(ref[4], "S5"); - ft_sprintf(ref[5], "S6"); - ft_sprintf(ref[6], "S7"); - ft_sprintf(ref[7], "S8"); + ft_sprintf(ref[1], "S3"); + ft_sprintf(ref[2], "S4"); + ft_sprintf(ref[3], "S5"); + ft_sprintf(ref[4], "S6"); + ft_sprintf(ref[5], "S7"); + ft_sprintf(ref[6], "S8"); + ft_sprintf(ref[7], "S9"); ret = 0; while (ft_strncmp(word, ref[ret], 3) && ref[ret][0]) ret++; @@ -110,6 +50,24 @@ static int8_t return (0); } +static int8_t + ft_get_sprite_norme(int8_t id, char **words, t_cub *clist) +{ + ft_memdel((void**)&clist->mlist.sprite_path[id]); + if (!(clist->mlist.sprite_path[id] = ft_strdup(*(words + 1)))) + { + ft_sprintf(clist->errmsg, FT_ERR_ALLOCATE); + return (-1); + } + if (ft_check_not_found(clist->mlist.sprite_path[id]) < 0) + { + ft_sprintf(clist->errmsg, FT_ERR_RD_SP); + return (-1); + } + clist->mlist.sprite_var++; + return (0); +} + int8_t ft_get_sprite(char **words, t_cub *clist) { @@ -131,16 +89,5 @@ int8_t ft_sprintf(clist->errmsg, FT_ERR_SPRITE_DUMB); return (-1); } - ft_memdel((void**)&clist->mlist.sprite_path[id]); - if (!(clist->mlist.sprite_path[id] = ft_strdup(*(words + 1)))) - { - ft_sprintf(clist->errmsg, FT_ERR_ALLOCATE); - return (-1); - } - if (ft_check_not_found(clist->mlist.sprite_path[id]) < 0) - { - ft_sprintf(clist->errmsg, FT_ERR_RD_SP); - return (-1); - } - return (0); + return (ft_get_sprite_norme(id, words, clist)); } |