diff options
author | Colin Snover | 2017-06-07 20:59:34 -0500 |
---|---|---|
committer | Colin Snover | 2017-06-09 23:00:14 -0500 |
commit | 85e35943fe27b99a91d97eace3072117c2073f69 (patch) | |
tree | b298ba66c3cdafde9d48f9d8b6690fb19cec3eef /engines/sci/engine/features.h | |
parent | 4311d1b18274d25384c5492c27f0611db28d6c4a (diff) | |
download | scummvm-rg350-85e35943fe27b99a91d97eace3072117c2073f69.tar.gz scummvm-rg350-85e35943fe27b99a91d97eace3072117c2073f69.tar.bz2 scummvm-rg350-85e35943fe27b99a91d97eace3072117c2073f69.zip |
SCI32: Implement kLock & kDoAudio(1) for SCI32
1. Unlocking all resources of a type using a resource ID of -1 is
gone in SCI32;
2. Audio locks need to be serialized starting in GK2 for the game's
modified kDoAudio(1) call;
3. Audio locks in SCI3 must work more like SSCI, since at least
Lighthouse's `BackMusic::fade` method will attempt to unlock
audio that was never locked by a script. In SSCI (and now in
ScummVM too) this is a no-op; previously in ScummVM, it would
remove Audio32's own lock on the audio resource, resulting in a
use-after-free;
4. kDoAudio(1) starting in GK2 returns the number of active
*not-in-memory* channels being played, not the total number of
active channels.
Fixes Trac#9675.
Diffstat (limited to 'engines/sci/engine/features.h')
-rw-r--r-- | engines/sci/engine/features.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/sci/engine/features.h b/engines/sci/engine/features.h index 6d9460d61e..08611981cf 100644 --- a/engines/sci/engine/features.h +++ b/engines/sci/engine/features.h @@ -113,6 +113,10 @@ public: } } + inline bool hasSci3Audio() const { + return getSciVersion() == SCI_VERSION_3 || g_sci->getGameId() == GID_GK2; + } + inline bool hasTransparentPicturePlanes() const { const SciGameId &gid = g_sci->getGameId(); |