aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_scripts.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2018-07-08 21:55:09 +0200
committerBastien Bouclet2018-07-08 21:55:09 +0200
commit5cff361f042b40590a3525681198b14c6f33454d (patch)
tree0e6c2f0b121170b580eebb9335b4918c03df55db /engines/mohawk/myst_scripts.cpp
parent5dd38b86608ab227a3a38a6c4fbfbb4bad745942 (diff)
downloadscummvm-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.cpp11
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) {