diff options
Diffstat (limited to 'engines/sci/engine/guest_additions.cpp')
-rw-r--r-- | engines/sci/engine/guest_additions.cpp | 12 |
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 |