aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/guest_additions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/guest_additions.cpp')
-rw-r--r--engines/sci/engine/guest_additions.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp
index afc87a5a8f..b8d6334c96 100644
--- a/engines/sci/engine/guest_additions.cpp
+++ b/engines/sci/engine/guest_additions.cpp
@@ -847,6 +847,18 @@ void GuestAdditions::syncMessageTypeFromScummVMUsingDefaultStrategy() const {
// is no equivalent option in the ScummVM GUI
_state->variables[VAR_GLOBAL][kGlobalVarGK1NarratorMode] = NULL_REG;
}
+
+ if (g_sci->getGameId() == GID_QFG4) {
+ // QFG4 uses a game flag to control the Audio button's state in the control panel.
+ // This flag must be kept in sync with the standard global 90 speech bit.
+ uint flagNumber = 400;
+ uint globalNumber = kGlobalVarQFG4Flags + (flagNumber / 16);
+ if (value & kMessageTypeSpeech) {
+ _state->variables[VAR_GLOBAL][globalNumber] |= 0x8000;
+ } else {
+ _state->variables[VAR_GLOBAL][globalNumber] &= ~0x8000;
+ }
+ }
}
#ifdef ENABLE_SCI32