author | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
---|---|---|
committer | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
commit | 0a6563fcc2f49857c581d9def24407a3a4ef526c (patch) (unidiff) | |
tree | f1b82a4bd7582ef2cb722cffb87eecff1e1f96e6 /noncore/games/sfcave-sdl/sound.cpp | |
parent | 50b5915b48fc5cbacf23e4d2b75d7a266f141a4a (diff) | |
download | opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.zip opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.tar.gz opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.tar.bz2 |
Clean up of code - fixed memory leaks (most of them) and added new custom config menu
Diffstat (limited to 'noncore/games/sfcave-sdl/sound.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/sfcave-sdl/sound.cpp | 15 |
1 files changed, 9 insertions, 6 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,34 +28,37 @@ 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 |
41 | Mix_FreeChunk( sounds[SND_EXPLOSION] ); | 42 | if ( sounds[SND_EXPLOSION] ) |
42 | Mix_FreeChunk( sounds[SND_THRUST] ); | 43 | Mix_FreeChunk( sounds[SND_EXPLOSION] ); |
44 | if ( 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(); |
48 | } | 51 | } |
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,20 +101,20 @@ 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(); |
111 | 114 | ||
112 | if ( fade ) | 115 | if ( fade ) |
113 | Mix_FadeInMusic( music, -1, 1000 ); | 116 | Mix_FadeInMusic( music, -1, 1000 ); |
114 | else | 117 | else |
115 | Mix_PlayMusic( music, -1 ); | 118 | Mix_PlayMusic( music, -1 ); |
116 | 119 | ||
117 | } | 120 | } |
@@ -143,12 +146,12 @@ void SoundHandler :: setSoundsOn( bool val ) | |||
143 | soundOn = val; | 146 | soundOn = val; |
144 | } | 147 | } |
145 | 148 | ||
146 | void SoundHandler :: setMusicOn( bool val ) | 149 | void SoundHandler :: setMusicOn( bool val ) |
147 | { | 150 | { |
148 | musicOn = val; | 151 | musicOn = val; |
149 | 152 | ||
150 | if ( !musicOn ) | 153 | if ( !musicOn ) |
151 | stopMusic(); | 154 | stopMusic(); |
152 | else | 155 | else |
153 | playMusic( true ); | 156 | playMusic( true ); |
154 | } | 157 | } |