aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/sound.cpp
diff options
context:
space:
mode:
authorjohndoe1232014-08-01 22:53:07 +0200
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit297996a0900acca177ecfd3ffa51907ad8d284fa (patch)
tree0f91f6c87cac520b5d7e334fd11e8e88a564e89e /engines/illusions/sound.cpp
parentad2c0aaf3d81688f9c575eef64b571cb73249997 (diff)
downloadscummvm-rg350-297996a0900acca177ecfd3ffa51907ad8d284fa.tar.gz
scummvm-rg350-297996a0900acca177ecfd3ffa51907ad8d284fa.tar.bz2
scummvm-rg350-297996a0900acca177ecfd3ffa51907ad8d284fa.zip
ILLUSIONS: Add sound effects (still buggy)
Diffstat (limited to 'engines/illusions/sound.cpp')
-rw-r--r--engines/illusions/sound.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/engines/illusions/sound.cpp b/engines/illusions/sound.cpp
index 23caf7ebb0..3a0f5ef3f2 100644
--- a/engines/illusions/sound.cpp
+++ b/engines/illusions/sound.cpp
@@ -82,7 +82,7 @@ VoicePlayer::~VoicePlayer() {
}
bool VoicePlayer::cue(const char *voiceName) {
-debug("VoicePlayer::cue(%s)", voiceName);
+ debug("VoicePlayer::cue(%s)", voiceName);
_voiceName = voiceName;
_voiceStatus = 2;
if (!isEnabled()) {
@@ -161,7 +161,7 @@ void Sound::play(int16 volume, int16 pan) {
}
void Sound::stop() {
- if (g_system->getMixer()->isSoundHandleActive(_soundHandle))
+ if (isPlaying())
g_system->getMixer()->stopHandle(_soundHandle);
}
@@ -228,26 +228,28 @@ bool SoundMan::isVoiceCued() {
}
void SoundMan::loadSound(uint32 soundEffectId, uint32 soundGroupId, bool looping) {
- Sound *soundEffect = new Sound(soundEffectId, soundGroupId, looping);
- _sounds.push_front(soundEffect);
+ Sound *sound = new Sound(soundEffectId, soundGroupId, looping);
+ _sounds.push_front(sound);
}
void SoundMan::playSound(uint32 soundEffectId, int16 volume, int16 pan) {
- Sound *soundEffect = getSound(soundEffectId);
- soundEffect->play(volume, pan);
+ Sound *sound = getSound(soundEffectId);
+ if (sound)
+ sound->play(volume, pan);
}
void SoundMan::stopSound(uint32 soundEffectId) {
- Sound *soundEffect = getSound(soundEffectId);
- soundEffect->stop();
+ Sound *sound = getSound(soundEffectId);
+ if (sound)
+ sound->stop();
}
void SoundMan::unloadSounds(uint32 soundGroupId) {
SoundListIterator it = _sounds.begin();
while (it != _sounds.end()) {
- Sound *soundEffect = *it;
- if (soundGroupId == 0 || soundEffect->_soundGroupId == soundGroupId) {
- delete soundEffect;
+ Sound *sound = *it;
+ if (soundGroupId == 0 || sound->_soundGroupId == soundGroupId) {
+ delete sound;
it = _sounds.erase(it);
} else
++it;