aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/state.cpp9
-rw-r--r--engines/sci/engine/state.h3
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();