aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--inc/cub3d_defines.h1
-rw-r--r--src/ft_del_sfx_cmd.c2
-rw-r--r--src/ft_del_sprites_lists.c3
-rw-r--r--src/ft_exit.c19
-rw-r--r--src/ft_warp_level.c2
5 files changed, 20 insertions, 7 deletions
diff --git a/inc/cub3d_defines.h b/inc/cub3d_defines.h
index be48fbe..e8c5781 100644
--- a/inc/cub3d_defines.h
+++ b/inc/cub3d_defines.h
@@ -158,6 +158,7 @@ enum
# else
# define FT_SND_CMD "/usr/bin/aplay -f cd -t wav -q %s"
# endif
+# define FT_SND_TERM_CMD "pkill -SIGTERM afplay"
/*
** ====== MOVE SPEED ======
diff --git a/src/ft_del_sfx_cmd.c b/src/ft_del_sfx_cmd.c
index 9d33eb9..fdfdacd 100644
--- a/src/ft_del_sfx_cmd.c
+++ b/src/ft_del_sfx_cmd.c
@@ -20,7 +20,7 @@ void
uint8_t i;
i = 0;
- while (i < 16)
+ while (i < FT_TOTAL_SFX)
{
ft_memdel((void*)&clist->sfx[i].cmd);
i++;
diff --git a/src/ft_del_sprites_lists.c b/src/ft_del_sprites_lists.c
index b7a854d..2b37c26 100644
--- a/src/ft_del_sprites_lists.c
+++ b/src/ft_del_sprites_lists.c
@@ -19,7 +19,8 @@ void
{
int8_t i;
- ft_memdel((void*)&clist->bad_boy);
+ if (clist->mlist.sprite_nbr[13] > 0)
+ ft_memdel((void*)&clist->bad_boy);
i = 0;
while (i < FT_TOTAL_SPRT)
{
diff --git a/src/ft_exit.c b/src/ft_exit.c
index 6d93f8e..4f2494b 100644
--- a/src/ft_exit.c
+++ b/src/ft_exit.c
@@ -17,6 +17,7 @@
#include <stdlib.h>
#include <stdint.h>
#include <pthread.h>
+#include <signal.h>
static void
ft_del_last_remains(t_cub *clist)
@@ -45,15 +46,25 @@ static void
if (clist->isoldmus && clist->wlist.inited)
{
- pthread_cancel(clist->mtid);
- pthread_join(clist->mtid, NULL);
+ if (FT_OS == 2)
+ {
+ pthread_cancel(clist->mtid);
+ pthread_join(clist->mtid, NULL);
+ }
+ else
+ system(FT_SND_TERM_CMD);
}
i = -1;
while (++i < FT_TOTAL_SFX)
{
pthread_mutex_unlock(&clist->sfx[i].mutex);
- pthread_cancel(clist->sfx[i].tid);
- pthread_join(clist->sfx[i].tid, NULL);
+ if (FT_OS == 2)
+ {
+ pthread_cancel(clist->sfx[i].tid);
+ pthread_join(clist->sfx[i].tid, NULL);
+ }
+ else
+ system(FT_SND_TERM_CMD);
}
}
diff --git a/src/ft_warp_level.c b/src/ft_warp_level.c
index f9fac3e..bc56433 100644
--- a/src/ft_warp_level.c
+++ b/src/ft_warp_level.c
@@ -56,6 +56,7 @@ static int8_t
cl->c_rgb = ft_init_rgb();
cl->rlist = ft_init_s_ray();
ft_del_tex(cl);
+ cl->walltexgood = 0;
ft_del_map(&cl->mlist);
ft_del_sprites_lists(cl);
if (ft_init_sprites(&cl->sprites) < 0)
@@ -99,7 +100,6 @@ int8_t
char *tmp_mup;
uint8_t isoldmus;
- cl->walltexgood = 0;
if (!(next_path = (char *)malloc((ft_strlen(path) + 1) * sizeof(char))))
return (-1);
ft_sprintf(next_path, "%s", path);