aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_get_sprite.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ft_get_sprite.c105
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));
}