author | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
---|---|---|
committer | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
commit | 0a6563fcc2f49857c581d9def24407a3a4ef526c (patch) (side-by-side diff) | |
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) (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( ) sounds[SND_EXPLOSION] = Mix_LoadWAV( SOUND_PATH "explosion.wav");
sounds[SND_THRUST] = Mix_LoadWAV( SOUND_PATH "thrust.wav");
music = 0;
soundOn = true;
+ musicOn = true;
return true;
}
void SoundHandler :: cleanUp()
{
// Free audio sounds
+ if ( sounds[SND_EXPLOSION] )
Mix_FreeChunk( sounds[SND_EXPLOSION] );
+ if ( sounds[SND_THRUST] )
Mix_FreeChunk( sounds[SND_THRUST] );
if ( music )
Mix_FreeMusic( music );
Mix_CloseAudio();
@@ -49,13 +52,13 @@ void SoundHandler :: cleanUp() int SoundHandler :: playSound( int soundNr, int channel, int nrLoops, int playBeforeFinished )
{
if ( !soundOn )
return -1;
- if ( soundNr >= NR_SOUNDS )
+ if ( soundNr >= NR_SOUNDS || !sounds[soundNr] )
return -1;
Mix_Chunk *chunk = sounds[soundNr];
if( channel == -1 || !Mix_Playing( channel ) )
channel = Mix_PlayChannel(-1, sounds[soundNr], nrLoops);
@@ -98,13 +101,13 @@ void SoundHandler :: playMusic( string musicFile ) playMusic();
}
void SoundHandler :: playMusic( bool fade )
{
- if ( !soundOn )
+ if ( !musicOn )
return;
if ( music )
{
Mix_VolumeMusic( MIX_MAX_VOLUME );
Mix_RewindMusic();
|