diff --git a/engines/neverhood/sound.cpp b/engines/neverhood/sound.cpp
index 3ea4549..1ffcaf9 100644
a
|
b
|
void SoundResource::play(uint32 fileHash) {
|
63 | 63 | void SoundResource::play() { |
64 | 64 | AudioResourceManSoundItem *soundItem = getSoundItem(); |
65 | 65 | if (soundItem) |
66 | | soundItem->playSound(false); |
| 66 | soundItem->playSound(); |
| 67 | } |
| 68 | |
| 69 | void SoundResource::playLooping() { |
| 70 | AudioResourceManSoundItem *soundItem = getSoundItem(); |
| 71 | if (soundItem) |
| 72 | soundItem->playSound(true); |
67 | 73 | } |
68 | 74 | |
69 | 75 | void SoundResource::stop() { |
… |
… |
void SoundItem::update() {
|
244 | 250 | } else if (--_currCountdown == 0) |
245 | 251 | _soundResource->play(); |
246 | 252 | } else if (_playLooping && !_soundResource->isPlaying()) |
247 | | _soundResource->play(); |
| 253 | _soundResource->playLooping(); |
248 | 254 | } |
249 | 255 | |
250 | 256 | // SoundMan |
… |
… |
void AudioResourceManSoundItem::playSound(bool looping) {
|
609 | 615 | if (_data) { |
610 | 616 | const byte *shiftValue = _resourceHandle.extData(); |
611 | 617 | Common::MemoryReadStream *stream = new Common::MemoryReadStream(_data, _resourceHandle.size(), DisposeAfterUse::NO); |
612 | | NeverhoodAudioStream *audioStream = new NeverhoodAudioStream(22050, *shiftValue, false, DisposeAfterUse::YES, stream); |
| 618 | NeverhoodAudioStream *audioStream = new NeverhoodAudioStream(22050, *shiftValue, looping, DisposeAfterUse::YES, stream); |
613 | 619 | _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, |
614 | 620 | audioStream, -1, VOLUME(_volume), PANNING(_panning)); |
615 | 621 | debug(1, "playing sound %08X", _fileHash); |
diff --git a/engines/neverhood/sound.h b/engines/neverhood/sound.h
index 548fe88..e74c3bc 100644
a
|
b
|
public:
|
50 | 50 | void unload(); |
51 | 51 | void play(uint32 fileHash); |
52 | 52 | void play(); |
| 53 | void playLooping(); |
53 | 54 | void stop(); |
54 | 55 | void setVolume(int16 volume); |
55 | 56 | void setPan(int16 pan); |
… |
… |
public:
|
216 | 217 | void unloadSound(); |
217 | 218 | void setVolume(int16 volume); |
218 | 219 | void setPan(int16 pan); |
219 | | void playSound(bool looping); |
| 220 | void playSound(bool looping = false); |
220 | 221 | void stopSound(); |
221 | 222 | bool isPlaying(); |
222 | 223 | protected: |