aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2009-07-04 11:24:09 +0000
committerFilippos Karapetis2009-07-04 11:24:09 +0000
commit230e7a8d2cf422d4956b089f779632de6cecf171 (patch)
tree0a5b8c61e2dbd712ac42de7b028db15269e17320 /engines/sci/engine
parentdf9570cb3265f4d81ac41d66d949355491e2df7e (diff)
downloadscummvm-rg350-230e7a8d2cf422d4956b089f779632de6cecf171.tar.gz
scummvm-rg350-230e7a8d2cf422d4956b089f779632de6cecf171.tar.bz2
scummvm-rg350-230e7a8d2cf422d4956b089f779632de6cecf171.zip
Newer DoSound() semantics are now detected automatically, by the existence of the "setVol" selector. Removed game flag GF_SCI1_NEWDOSOUND
svn-id: r42087
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/ksound.cpp2
-rw-r--r--engines/sci/engine/script.cpp1
-rw-r--r--engines/sci/engine/vm.h1
3 files changed, 3 insertions, 1 deletions
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index bb27589d84..1dc597a80d 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -964,7 +964,7 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kDoSound(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- if (s->_version >= SCI_VERSION_1_1 || s->_flags & GF_SCI1_NEWDOSOUND)
+ if (s->_kernel->_selectorMap.setVol != -1)
return kDoSound_SCI1(s, funct_nr, argc, argv);
else if (s->_version >= SCI_VERSION_01)
return kDoSound_SCI01(s, funct_nr, argc, argv);
diff --git a/engines/sci/engine/script.cpp b/engines/sci/engine/script.cpp
index fb094e00f6..6ec4b0b43d 100644
--- a/engines/sci/engine/script.cpp
+++ b/engines/sci/engine/script.cpp
@@ -203,6 +203,7 @@ void Kernel::mapSelectors() {
FIND_SELECTOR(printLang);
FIND_SELECTOR(subtitleLang);
FIND_SELECTOR(parseLang);
+ FIND_SELECTOR(setVol);
}
void Kernel::dumpScriptObject(char *data, int seeker, int objsize) {
diff --git a/engines/sci/engine/vm.h b/engines/sci/engine/vm.h
index a3fabbe44b..a4c3043594 100644
--- a/engines/sci/engine/vm.h
+++ b/engines/sci/engine/vm.h
@@ -203,6 +203,7 @@ struct selector_map_t {
Selector printLang; /**< Used for i18n */
Selector subtitleLang;
Selector parseLang;
+ Selector setVol; /**< Used to detect newer sound semantics */
};
// A reference to an object's variable.