aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Kołodziejski2009-09-26 09:31:05 +0000
committerPaweł Kołodziejski2009-09-26 09:31:05 +0000
commite46029e8c614c2f18419691baf1ff3b9fd40e95d (patch)
tree80116b58d0063e6766c9d2d449e95acfd5466c7b
parenta5df07f56ae159b306e81d5920ae228be817e284 (diff)
downloadscummvm-rg350-e46029e8c614c2f18419691baf1ff3b9fd40e95d.tar.gz
scummvm-rg350-e46029e8c614c2f18419691baf1ff3b9fd40e95d.tar.bz2
scummvm-rg350-e46029e8c614c2f18419691baf1ff3b9fd40e95d.zip
added option to allow control digital imuse tempo callback. it's related to volume fading, lip sync quality and platform resource costs.
svn-id: r44374
-rw-r--r--base/commandLine.cpp11
-rw-r--r--engines/scumm/scumm.cpp5
2 files changed, 15 insertions, 1 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 086093ed9b..dd1d9b0911 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -122,6 +122,10 @@ static const char HELP_STRING[] =
#ifdef ENABLE_SCUMM
" --tempo=NUM Set music tempo (in percent, 50-200) for SCUMM games\n"
" (default: 100)\n"
+#ifdef ENABLE_SCUMM_7_8
+ " --dimuse-tempo=NUM Set internal Digital iMuse tempo (10 - 100) per second\n"
+ " (default: 10)\n"
+#endif
#endif
"\n"
"The meaning of boolean long options can be inverted by prefixing them with\n"
@@ -198,6 +202,9 @@ void registerDefaults() {
#endif
#ifdef ENABLE_SCUMM
ConfMan.registerDefault("tempo", 0);
+#ifdef ENABLE_SCUMM_7_8
+ ConfMan.registerDefault("dimuse_tempo", 10);
+#endif
#endif
#if defined(ENABLE_SKY) || defined(ENABLE_QUEEN)
@@ -509,6 +516,10 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
#ifdef ENABLE_SCUMM
DO_LONG_OPTION_INT("tempo")
END_OPTION
+#ifdef ENABLE_SCUMM_7_8
+ DO_LONG_OPTION_INT("dimuse-tempo")
+ END_OPTION
+#endif
#endif
#if defined(ENABLE_SCUMM) || defined(ENABLE_GROOVIE)
DO_LONG_OPTION_BOOL("demo-mode")
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 74fa7ab9a3..bced8a784d 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1236,7 +1236,10 @@ void ScummEngine_v7::setupScumm() {
else
_smushFrameRate = (_game.id == GID_FT) ? 10 : 12;
- _musicEngine = _imuseDigital = new IMuseDigital(this, _mixer, 10);
+ int dimuseTempo = CLIP(ConfMan.getInt("dimuse_tempo"), 10, 100);
+ ConfMan.setInt("dimuse_tempo", dimuseTempo);
+ ConfMan.flushToDisk();
+ _musicEngine = _imuseDigital = new IMuseDigital(this, _mixer, dimuseTempo);
ScummEngine::setupScumm();