summaryrefslogtreecommitdiff
path: root/noncore/games/sfcave-sdl/sound.cpp
Unidiff
Diffstat (limited to 'noncore/games/sfcave-sdl/sound.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/games/sfcave-sdl/sound.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/noncore/games/sfcave-sdl/sound.cpp b/noncore/games/sfcave-sdl/sound.cpp
index 5fda859..855f2e6 100644
--- a/noncore/games/sfcave-sdl/sound.cpp
+++ b/noncore/games/sfcave-sdl/sound.cpp
@@ -28,20 +28,23 @@ bool SoundHandler :: init( )
28 sounds[SND_EXPLOSION] = Mix_LoadWAV( SOUND_PATH "explosion.wav"); 28 sounds[SND_EXPLOSION] = Mix_LoadWAV( SOUND_PATH "explosion.wav");
29 sounds[SND_THRUST] = Mix_LoadWAV( SOUND_PATH "thrust.wav"); 29 sounds[SND_THRUST] = Mix_LoadWAV( SOUND_PATH "thrust.wav");
30 30
31 music = 0; 31 music = 0;
32 32
33 soundOn = true; 33 soundOn = true;
34 musicOn = true;
34 35
35 return true; 36 return true;
36} 37}
37 38
38void SoundHandler :: cleanUp() 39void SoundHandler :: cleanUp()
39{ 40{
40 // Free audio sounds 41 // Free audio sounds
42 if ( sounds[SND_EXPLOSION] )
41 Mix_FreeChunk( sounds[SND_EXPLOSION] ); 43 Mix_FreeChunk( sounds[SND_EXPLOSION] );
44 if ( sounds[SND_THRUST] )
42 Mix_FreeChunk( sounds[SND_THRUST] ); 45 Mix_FreeChunk( sounds[SND_THRUST] );
43 46
44 if ( music ) 47 if ( music )
45 Mix_FreeMusic( music ); 48 Mix_FreeMusic( music );
46 49
47 Mix_CloseAudio(); 50 Mix_CloseAudio();
@@ -49,13 +52,13 @@ void SoundHandler :: cleanUp()
49 52
50int SoundHandler :: playSound( int soundNr, int channel, int nrLoops, int playBeforeFinished ) 53int SoundHandler :: playSound( int soundNr, int channel, int nrLoops, int playBeforeFinished )
51{ 54{
52 if ( !soundOn ) 55 if ( !soundOn )
53 return -1; 56 return -1;
54 57
55 if ( soundNr >= NR_SOUNDS ) 58 if ( soundNr >= NR_SOUNDS || !sounds[soundNr] )
56 return -1; 59 return -1;
57 60
58 Mix_Chunk *chunk = sounds[soundNr]; 61 Mix_Chunk *chunk = sounds[soundNr];
59 if( channel == -1 || !Mix_Playing( channel ) ) 62 if( channel == -1 || !Mix_Playing( channel ) )
60 channel = Mix_PlayChannel(-1, sounds[soundNr], nrLoops); 63 channel = Mix_PlayChannel(-1, sounds[soundNr], nrLoops);
61 64
@@ -98,13 +101,13 @@ void SoundHandler :: playMusic( string musicFile )
98 101
99 playMusic(); 102 playMusic();
100} 103}
101 104
102void SoundHandler :: playMusic( bool fade ) 105void SoundHandler :: playMusic( bool fade )
103{ 106{
104 if ( !soundOn ) 107 if ( !musicOn )
105 return; 108 return;
106 109
107 if ( music ) 110 if ( music )
108 { 111 {
109 Mix_VolumeMusic( MIX_MAX_VOLUME ); 112 Mix_VolumeMusic( MIX_MAX_VOLUME );
110 Mix_RewindMusic(); 113 Mix_RewindMusic();