diff options
Diffstat (limited to 'src/ft_sfx_weapon_one.c')
-rw-r--r-- | src/ft_sfx_weapon_one.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/ft_sfx_weapon_one.c b/src/ft_sfx_weapon_one.c new file mode 100644 index 0000000..fca86f5 --- /dev/null +++ b/src/ft_sfx_weapon_one.c @@ -0,0 +1,67 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_sfx_weapon_one.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/24 17:17:54 by rbousset #+# #+# */ +/* Updated: 2020/02/24 17:17:56 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include <cub3d.h> +#include <stdlib.h> +#include <pthread.h> + +void + *ft_sfx_weapon_one_load_thread(void *vargp) +{ + t_sfx *sfx; + + if (FT_OS == 1) + pthread_setcancelstate(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + else + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); + sfx = (t_sfx *)vargp; + pthread_mutex_lock(&sfx[6].mutex); + while (1) + { + pthread_mutex_lock(&sfx[6].mutex); + if (system(sfx[6].cmd)) + pthread_exit(NULL); + } + return (NULL); +} + +void + ft_sfx_weapon_one_load(t_sfx *sfx) +{ + pthread_mutex_unlock(&sfx[6].mutex); +} + +void + *ft_sfx_weapon_one_fire_thread(void *vargp) +{ + t_sfx *sfx; + + if (FT_OS == 1) + pthread_setcancelstate(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + else + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); + sfx = (t_sfx *)vargp; + pthread_mutex_lock(&sfx[7].mutex); + while (1) + { + pthread_mutex_lock(&sfx[7].mutex); + if (system(sfx[7].cmd)) + pthread_exit(NULL); + } + return (NULL); +} + +void + ft_sfx_weapon_one_fire(t_sfx *sfx) +{ + pthread_mutex_unlock(&sfx[7].mutex); +} |