[Scummvm-git-logs] scummvm master -> 5cff361f042b40590a3525681198b14c6f33454d

bgK bastien.bouclet at gmail.com
Sun Jul 8 21:56:12 CEST 2018


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
5dd38b8660 MOHAWK: MYST: Play complete audio clip when changing the boiler pressure
5cff361f04 MOHAWK: MYST: Add delays at each step of Achenar's torture switch anim


Commit: 5dd38b86608ab227a3a38a6c4fbfbb4bad745942
    https://github.com/scummvm/scummvm/commit/5dd38b86608ab227a3a38a6c4fbfbb4bad745942
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2018-07-08T21:55:09+02:00

Commit Message:
MOHAWK: MYST: Play complete audio clip when changing the boiler pressure

Fixes Trac#10607.

Changed paths:
    engines/mohawk/myst_stacks/myst.cpp


diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 647676e..2e70778 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -2025,6 +2025,10 @@ void Myst::o_boilerIncreasePressureStop(uint16 var, const ArgumentsArray &args)
 	_boilerPressureIncreasing = false;
 	_state.treeLastMoveTime = _vm->getTotalPlayTime();
 
+	while (_vm->_sound->isEffectPlaying()) {
+		_vm->doFrame();
+	}
+
 	if (_state.cabinPilotLightLit == 1) {
 		if (_state.cabinValvePosition > 0)
 			_vm->_sound->playBackground(8098, 49152);
@@ -2096,6 +2100,10 @@ void Myst::o_boilerDecreasePressureStop(uint16 var, const ArgumentsArray &args)
 	_boilerPressureDecreasing = false;
 	_state.treeLastMoveTime = _vm->getTotalPlayTime();
 
+	while (_vm->_sound->isEffectPlaying()) {
+		_vm->doFrame();
+	}
+
 	if (_state.cabinPilotLightLit == 1) {
 		if (_state.cabinValvePosition > 0)
 			_vm->_sound->playBackground(8098, 49152);


Commit: 5cff361f042b40590a3525681198b14c6f33454d
    https://github.com/scummvm/scummvm/commit/5cff361f042b40590a3525681198b14c6f33454d
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2018-07-08T21:55:09+02:00

Commit Message:
MOHAWK: MYST: Add delays at each step of Achenar's torture switch anim

Fixes Trac#10606.

Changed paths:
    engines/mohawk/myst_scripts.cpp


diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp
index aac0bd3..fa5d395 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) {





More information about the Scummvm-git-logs mailing list