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.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp
index ed318058b3..16c4f94f9e 100644
--- a/engines/sci/engine/guest_additions.cpp
+++ b/engines/sci/engine/guest_additions.cpp
@@ -165,6 +165,16 @@ void GuestAdditions::writeVarHook(const int type, const int index, const reg_t v
syncGK1StartupVolumeFromScummVM(index, value);
} else if (g_sci->getGameId() == GID_HOYLE5 && index == kGlobalVarHoyle5MusicVolume) {
syncHoyle5VolumeFromScummVM((ConfMan.getInt("music_volume") + 1) * kHoyle5VolumeMax / Audio::Mixer::kMaxMixerVolume);
+ } else if (g_sci->getGameId() == GID_HOYLE5 && index == kkGlobalVarHoyle5ResponseTime && value.getOffset() == 0) {
+ // WORKAROUND: Global 899 contains the response time value,
+ // which may have values between 1 and 15. There is a script
+ // bug when loading values from game.opt, where this variable
+ // may be incorrectly set to 0. This makes the opponent freezetat
+ // while playing Backgammon and Bridge. Fix this case here, by
+ // setting the correct minimum value, 1.
+ // TODO: Either make this a script patch, or find out if it's
+ // a bug with ScummVM when reading values from text files.
+ _state->variables[VAR_GLOBAL][index].setOffset(1);
} else if (g_sci->getGameId() == GID_RAMA && !g_sci->isDemo() && index == kGlobalVarRamaMusicVolume) {
syncRamaVolumeFromScummVM((ConfMan.getInt("music_volume") + 1) * kRamaVolumeMax / Audio::Mixer::kMaxMixerVolume);
}