From e46029e8c614c2f18419691baf1ff3b9fd40e95d Mon Sep 17 00:00:00 2001 From: Paweł Kołodziejski Date: Sat, 26 Sep 2009 09:31:05 +0000 Subject: 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 --- base/commandLine.cpp | 11 +++++++++++ engines/scumm/scumm.cpp | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) 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(); -- cgit v1.2.3