X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=sound.c;h=43028657f319e6a611ac36263516717cff4660f8;hp=3794bef559e573b2bb9279b347dd98ca1395d6df;hb=HEAD;hpb=af711b4e66c96c112086a442ea09094643bd8d71 diff --git a/sound.c b/sound.c index 3794bef..4302865 100644 --- a/sound.c +++ b/sound.c @@ -1,17 +1,17 @@ -#include -#include +#include +#include #include #include #include #include "args.h" #include "common.h" -#include "config.h" +#include "vorconfig.h" #include "sound.h" static Mix_Music *music[NUM_TUNES]; -static int music_volume[NUM_TUNES] = {128,128,128}; +static int music_volume[NUM_TUNES] = {255}; static Mix_Chunk *wav[NUM_SOUNDS]; int audio_rate; @@ -20,16 +20,11 @@ int audio_channels; char *add_data_path(char *); char *wav_file[] = { - "sounds/booom.wav", - "sounds/cboom.wav", - "sounds/boom.wav", - "sounds/bzboom.wav" + "bang.wav" }; char *tune_file[] = { - "music/magic.mod", - "music/getzznew.mod", - "music/4est_fulla3s.mod" + "mph.xm" }; // Return 1 if the sound is ready to roll, and 0 if not. @@ -70,25 +65,56 @@ void play_sound(int i) { if(!opt_sound) return; Mix_PlayChannel(-1, wav[i], 0); -}/*}}}*/ +} -int playing=-1; +int playing = NUM_TUNES + 1; void -play_tune(int i) {/*{{{*/ - if(!opt_music) return; - if (playing==i) - return; - if (playing) { - Mix_FadeOutMusic(1500); +play_tune(int i) { + if(!opt_sound) { + return; + } + if (playing == i) { + return; + } + if (playing < NUM_TUNES) { + Mix_FadeOutMusic(2500); + } + // There are songs yet to be written... + if(i < NUM_TUNES) { + Mix_FadeInMusic(music[i], -1, 2000); + Mix_VolumeMusic(music_volume[i]); } - Mix_FadeInMusic(music[i],-1,2000); - Mix_VolumeMusic(music_volume[i]); playing = i; } + +int tune_paused=0; + +void +pause_tune() { + if(!opt_sound) { + return; + } + if(playing < NUM_TUNES && !tune_paused) { + Mix_PauseMusic(); + tune_paused = 1; + } +} + +void +resume_tune() { + if(!opt_sound) { + return; + } + if(playing < NUM_TUNES && tune_paused) { + Mix_ResumeMusic(); + tune_paused = 0; + } +} + /* * * The init_sound() routine is called first.