From f9bbc2ca37f40692d555d3b355209a7f2538afda Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Thu, 31 Oct 2013 07:25:25 +0200 Subject: SCI: Update ScummVM's game audio options for SCI1.1 CD games This ensures that ScummVM's game audio options for speech and subtitles get updated when they are changed in the game GUI --- engines/sci/engine/vm.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'engines/sci/engine/vm.cpp') diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index ef8f165084..d7c2fdc0eb 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -200,11 +200,18 @@ static void write_var(EngineState *s, int type, int index, reg_t value) { s->variables[type][index] = value; - // If the game is trying to change its speech/subtitle settings, apply the ScummVM audio - // options first, if they haven't been applied yet - if (type == VAR_GLOBAL && index == 90 && !g_sci->getEngineState()->_syncedAudioOptions) { - g_sci->syncIngameAudioOptions(); - g_sci->getEngineState()->_syncedAudioOptions = true; + if (type == VAR_GLOBAL && index == 90) { + // The game is trying to change its speech/subtitle settings + if (!g_sci->getEngineState()->_syncedAudioOptions || s->variables[VAR_GLOBAL][4] == TRUE_REG) { + // ScummVM audio options haven't been applied yet, so apply them. + // We also force the ScummVM audio options when loading a game from + // the launcher. + g_sci->syncIngameAudioOptions(); + g_sci->getEngineState()->_syncedAudioOptions = true; + } else { + // Update ScummVM's audio options + g_sci->updateScummVMAudioOptions(); + } } } } -- cgit v1.2.3