diff options
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/state.cpp | 9 | ||||
-rw-r--r-- | engines/sci/engine/state.h | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp index a46dcf35c9..4cc830cb02 100644 --- a/engines/sci/engine/state.cpp +++ b/engines/sci/engine/state.cpp @@ -479,10 +479,13 @@ bool EngineState::autoDetectFeature(FeatureDetection featureDetection, int metho SciVersion EngineState::detectDoSoundType() { if (_doSoundType == SCI_VERSION_AUTODETECT) { - if (_kernel->_selectorCache.nodePtr == -1) { - // No nodePtr selector, so this game is definitely using - // SCI0 sound code (i.e. SCI_VERSION_0_EARLY) + if (getSciVersion() == SCI_VERSION_0_EARLY) { + // This game is using early SCI0 sound code (different headers than SCI0 late) _doSoundType = SCI_VERSION_0_EARLY; + } else if (_kernel->_selectorCache.nodePtr == -1) { + // No nodePtr selector, so this game is definitely using newer + // SCI0 sound code (i.e. SCI_VERSION_0_LATE) + _doSoundType = SCI_VERSION_0_LATE; } else { if (getSciVersion() >= SCI_VERSION_1_LATE) { // All SCI1 late games use the newer doSound semantics diff --git a/engines/sci/engine/state.h b/engines/sci/engine/state.h index 053fc51f18..69006710ad 100644 --- a/engines/sci/engine/state.h +++ b/engines/sci/engine/state.h @@ -239,7 +239,8 @@ public: /** * Autodetects the DoSound type - * @return DoSound type, SCI_VERSION_0_EARLY / SCI_VERSION_1_EARLY / SCI_VERSION_1_LATE + * @return DoSound type, SCI_VERSION_0_EARLY / SCI_VERSION_0_LATE / + * SCI_VERSION_1_EARLY / SCI_VERSION_1_LATE */ SciVersion detectDoSoundType(); |