Diffstat (limited to 'noncore/games/sfcave-sdl/sound.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/sfcave-sdl/sound.cpp | 7 |
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 | ||
38 | void SoundHandler :: cleanUp() | 39 | void 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 | ||
50 | int SoundHandler :: playSound( int soundNr, int channel, int nrLoops, int playBeforeFinished ) | 53 | int 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 | ||
102 | void SoundHandler :: playMusic( bool fade ) | 105 | void 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(); |