diff options
author | Bastien Bouclet | 2018-07-08 21:55:09 +0200 |
---|---|---|
committer | Bastien Bouclet | 2018-07-08 21:55:09 +0200 |
commit | 5cff361f042b40590a3525681198b14c6f33454d (patch) | |
tree | 0e6c2f0b121170b580eebb9335b4918c03df55db /engines/mohawk/myst_scripts.cpp | |
parent | 5dd38b86608ab227a3a38a6c4fbfbb4bad745942 (diff) | |
download | scummvm-rg350-5cff361f042b40590a3525681198b14c6f33454d.tar.gz scummvm-rg350-5cff361f042b40590a3525681198b14c6f33454d.tar.bz2 scummvm-rg350-5cff361f042b40590a3525681198b14c6f33454d.zip |
MOHAWK: MYST: Add delays at each step of Achenar's torture switch anim
Fixes Trac#10606.
Diffstat (limited to 'engines/mohawk/myst_scripts.cpp')
-rw-r--r-- | engines/mohawk/myst_scripts.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index aac0bd30bf..fa5d3952eb 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -634,6 +634,17 @@ void MystScriptParser::o_copyImageToBackBuffer(uint16 var, const ArgumentsArray debugC(kDebugScript, "\tdstRect.bottom: %d", dstRect.bottom); _vm->_gfx->copyImageSectionToBackBuffer(imageId, srcRect, dstRect); + + // WORKAROUND: When hitting the switch of the torture chamber in Achenar's + // hidden room on the Mechanical Age, the game calls this opcode multiple + // times in a row with different images without waiting in between. + // As a result the images are not shown since the screen is only + // updated once per frame. The original engine misbehaves as well. + // Here we artificially introduce a delay after each image to allow + // them to be visible for a few frames. + if (_vm->getCard()->getId() == 6009) { + _vm->wait(100); + } } void MystScriptParser::o_changeBackgroundSound(uint16 var, const ArgumentsArray &args) { |