aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2014-12-09 00:35:02 +0100
committerPaul Gilbert2014-12-12 23:03:59 -0500
commit35922c28c8579c9f2fe476a351da74a92b7660d5 (patch)
tree45a515b94068f5fdb0ac9e81edfff719d283b9a8
parent9ef60f3f3357491e39dfe3c16470fa3711e8a211 (diff)
downloadscummvm-rg350-35922c28c8579c9f2fe476a351da74a92b7660d5.tar.gz
scummvm-rg350-35922c28c8579c9f2fe476a351da74a92b7660d5.tar.bz2
scummvm-rg350-35922c28c8579c9f2fe476a351da74a92b7660d5.zip
ACCESS: Add a hack to fake queueing
-rw-r--r--engines/access/amazon/amazon_logic.cpp2
-rw-r--r--engines/access/sound.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/engines/access/amazon/amazon_logic.cpp b/engines/access/amazon/amazon_logic.cpp
index 89ea81507b..f1bf7dcf3b 100644
--- a/engines/access/amazon/amazon_logic.cpp
+++ b/engines/access/amazon/amazon_logic.cpp
@@ -354,9 +354,9 @@ void Opening::doTitle() {
_vm->_buffer2.plotImage(_vm->_objectsTable[0], id, Common::Point(xp, 71));
_vm->_screen->copyFrom(_vm->_buffer2);
+ _vm->_sound->playSound(1);
_vm->_events->_vbCount = 70;
while (!_vm->shouldQuit() && _vm->_events->_vbCount > 0 && !_skipStart) {
- _vm->_sound->playSound(1);
_vm->_events->pollEventsAndWait();
if (_vm->_events->_rightButton)
_skipStart = true;
diff --git a/engines/access/sound.cpp b/engines/access/sound.cpp
index b5800ba82f..4e701618d9 100644
--- a/engines/access/sound.cpp
+++ b/engines/access/sound.cpp
@@ -82,6 +82,10 @@ void SoundManager::playSound(Resource *res, int priority) {
assert(res->_size >= 32);
+ // HACK: Simulates queueing for the rare sounds played one after the other
+ while (_mixer->hasActiveChannelOfType(Audio::Mixer::kSFXSoundType))
+ ;
+
if (READ_BE_UINT32(resourceData) == MKTAG('R','I','F','F')) {
// CD version uses WAVE-files
Common::SeekableReadStream *waveStream = new Common::MemoryReadStream(resourceData, res->_size, DisposeAfterUse::NO);