[Scummvm-git-logs] scummvm branch-2-7 -> 869c6921a2f3a7959ebbf26d756b99c5154d6e98

sev- noreply at scummvm.org
Mon Feb 13 10:36:44 UTC 2023


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:
78a245519e DIRECTOR: sound loops can begin on 0
869c6921a2 DIRECTOR: D3 keeps looping sounds


Commit: 78a245519e41ff67dbb58ef8d317cf8f1e4dcaf2
    https://github.com/scummvm/scummvm/commit/78a245519e41ff67dbb58ef8d317cf8f1e4dcaf2
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2023-02-13T11:36:19+01:00

Commit Message:
DIRECTOR: sound loops can begin on 0

The logic to determine if a sound is loopable or not didn't consder that
a sound could loop from the beginning. A short song in The Seven Colors
begins at sample 0 and ends at 6456, which was considered non-looping
before this.

Changed paths:
    engines/director/sound.cpp


diff --git a/engines/director/sound.cpp b/engines/director/sound.cpp
index e37a126e2eb..624fc145319 100644
--- a/engines/director/sound.cpp
+++ b/engines/director/sound.cpp
@@ -790,7 +790,7 @@ Audio::AudioStream *SNDDecoder::getAudioStream(bool looping, bool forPuppet, Dis
 }
 
 bool SNDDecoder::hasLoopBounds() {
-	return _loopStart != 0 && _loopEnd != 0;
+	return _loopStart != 0 || _loopEnd != 0;
 }
 
 AudioFileDecoder::AudioFileDecoder(Common::String &path)


Commit: 869c6921a2f3a7959ebbf26d756b99c5154d6e98
    https://github.com/scummvm/scummvm/commit/869c6921a2f3a7959ebbf26d756b99c5154d6e98
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2023-02-13T11:36:33+01:00

Commit Message:
DIRECTOR: D3 keeps looping sounds

Changed paths:
    engines/director/sound.cpp


diff --git a/engines/director/sound.cpp b/engines/director/sound.cpp
index 624fc145319..4c40fd98331 100644
--- a/engines/director/sound.cpp
+++ b/engines/director/sound.cpp
@@ -135,7 +135,9 @@ void DirectorSound::playCastMember(CastMemberID memberID, uint8 soundChannel, bo
 		//   4. maybe more?
 		if (shouldStopOnZero(soundChannel)) {
 			stopSound(soundChannel);
-		} else {
+		// Director 4 will stop after the current loop iteration, but
+		// Director 3 will continue looping until the sound is replaced.
+		} else if (g_director->getVersion() >= 400) {
 			// If there is a loopable stream specified, set the loop to expire by itself
 			if (_channels[soundChannel - 1].loopPtr) {
 				debugC(5, kDebugSound, "DirectorSound::playCastMember(): telling loop in channel %d to stop", soundChannel);




More information about the Scummvm-git-logs mailing list