diff options
| author | Bastien Bouclet | 2018-04-15 06:17:45 +0200 | 
|---|---|---|
| committer | Bastien Bouclet | 2018-04-15 06:17:45 +0200 | 
| commit | b1f927f10577c4547b0667776d5df124d3a8dd15 (patch) | |
| tree | 3d719cd8d44f3b4552c06cf34f15cfa36d9a04cf | |
| parent | 85c802c9b74d2cbafd68dcc8c2e88423e66ccb36 (diff) | |
| download | scummvm-rg350-b1f927f10577c4547b0667776d5df124d3a8dd15.tar.gz scummvm-rg350-b1f927f10577c4547b0667776d5df124d3a8dd15.tar.bz2 scummvm-rg350-b1f927f10577c4547b0667776d5df124d3a8dd15.zip  | |
MOHAWK: MYST: Make changeBackgroundSound wait for the effect to complete
Fixes #10489.
| -rw-r--r-- | engines/mohawk/myst_scripts.cpp | 10 | ||||
| -rw-r--r-- | engines/mohawk/myst_scripts.h | 1 | 
2 files changed, 9 insertions, 2 deletions
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index 70923e93d5..4b22a94d0c 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -625,6 +625,8 @@ void MystScriptParser::o_copyImageToBackBuffer(uint16 var, const ArgumentsArray  }  void MystScriptParser::o_changeBackgroundSound(uint16 var, const ArgumentsArray &args) { +	soundWaitStop(); +  	// Used on Stoneship Card 2080  	// Used on Channelwood Card 3225 with argc = 8 i.e. Conditional Sound List  	Common::MemoryWriteStreamDynamic writeStream = Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); @@ -787,12 +789,16 @@ void MystScriptParser::o_soundWaitStop(uint16 var, const ArgumentsArray &args) {  	// Used on Selenitic Card 1191 (Maze Runner)  	// Used on Mechanical Card 6267 (Code Lock)  	// Used when Button is pushed... -	while (_vm->_sound->isEffectPlaying()) +	soundWaitStop(); +} + +void MystScriptParser::soundWaitStop() const { +	while (_vm->_sound->isEffectPlaying() && !Engine::shouldQuit())  		_vm->doFrame();  }  void MystScriptParser::o_quit(uint16 var, const ArgumentsArray &args) { -	_vm->quitGame(); +	Engine::quitGame();  }  void MystScriptParser::showMap() { diff --git a/engines/mohawk/myst_scripts.h b/engines/mohawk/myst_scripts.h index 3ef8663324..a7a840b9d3 100644 --- a/engines/mohawk/myst_scripts.h +++ b/engines/mohawk/myst_scripts.h @@ -87,6 +87,7 @@ public:  	void showMap();  	void animatedUpdate(const ArgumentsArray &args, uint16 delay); +	void soundWaitStop() const;  	// Common opcodes  	DECLARE_OPCODE(o_toggleVar);  | 
