[Scummvm-cvs-logs] scummvm master -> b2ec7acbf7b69f914b239f3894045773ef46d6cf

bluegr bluegr at gmail.com
Tue May 17 10:23:43 CEST 2016


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

Summary:
b2ec7acbf7 LAB: Fix waiting for sounds embedded in animations


Commit: b2ec7acbf7b69f914b239f3894045773ef46d6cf
    https://github.com/scummvm/scummvm/commit/b2ec7acbf7b69f914b239f3894045773ef46d6cf
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-05-17T11:22:27+03:00

Commit Message:
LAB: Fix waiting for sounds embedded in animations

A regression of 75d1385c8d1ba61b5740a0b43966d3c2f111440d

Changed paths:
    engines/lab/anim.cpp
    engines/lab/processroom.cpp



diff --git a/engines/lab/anim.cpp b/engines/lab/anim.cpp
index 1190f03..2dc5807 100644
--- a/engines/lab/anim.cpp
+++ b/engines/lab/anim.cpp
@@ -208,6 +208,8 @@ void Anim::diffNextFrame(bool onlyDiffData) {
 					_vm->updateEvents();
 					_vm->waitTOF();
 				}
+
+				_waitForEffect = false;
 			}
 
 			_size -= 8;
@@ -217,7 +219,9 @@ void Anim::diffNextFrame(bool onlyDiffData) {
 			_diffFile->skip(2);
 
 			// Sound effects embedded in animations are started here. These are
-			// usually animation-specific, like door opening sounds, and are not looped
+			// usually animation-specific, like door opening sounds, and are not looped.
+			// The engine should wait for all such sounds to end.
+			_waitForEffect = true;
 			_vm->_music->playSoundEffect(_sampleSpeed, _size, false, _diffFile);
 			break;
 
@@ -233,6 +237,8 @@ void Anim::diffNextFrame(bool onlyDiffData) {
 						if (drawOnScreen)
 							didTOF = true;
 					}
+
+					_waitForEffect = false;
 				}
 
 				_isPlaying = false;
diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp
index 5093e8e..68e6e63 100644
--- a/engines/lab/processroom.cpp
+++ b/engines/lab/processroom.cpp
@@ -254,16 +254,9 @@ void LabEngine::doActions(const ActionList &actionList) {
 			_music->loadSoundEffect(action->_messages[0], true, false);
 			break;
 
-		case kActionShowDiff: {
-			bool curWait = _anim->_waitForEffect;
-			// Pause the engine until the sound is finished
-			_anim->_waitForEffect = true;
+		case kActionShowDiff:
 			_graphics->readPict(action->_messages[0], true);
-
-			// Restore the previous value of _waitForEffect
-			_anim->_waitForEffect = curWait;
 			break;
-			}
 
 		case kActionShowDiffLooping:	// used in scene 44 (heart of the labyrinth, minotaur)
 			_graphics->readPict(action->_messages[0], false);






More information about the Scummvm-git-logs mailing list