[Scummvm-git-logs] scummvm master -> f07c7311d580fd25004eae5dd35eebc938614806

sev- noreply at scummvm.org
Tue Mar 15 20:07:47 UTC 2022


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:
37c7430864 JANITORIAL: Remove trailing whitespaces
f07c7311d5 DIRECTOR: Implement Sord chunk loading (not used by ScummVM)


Commit: 37c74308641231138df666968aa219b391116207
    https://github.com/scummvm/scummvm/commit/37c74308641231138df666968aa219b391116207
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-03-15T21:05:51+01:00

Commit Message:
JANITORIAL: Remove trailing whitespaces

Changed paths:
    engines/director/score.cpp


diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 2e723c08be8..f48cbbb3283 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -317,7 +317,7 @@ void Score::update() {
 
 		if (_waitForChannel) {
 			if (_soundManager->isChannelActive(_waitForChannel)) {
-				keepWaiting = true; 
+				keepWaiting = true;
 			} else {
 				_waitForChannel = 0;
 			}
@@ -936,7 +936,7 @@ void Score::loadLabels(Common::SeekableReadStreamEndian &stream) {
 				ch = '\n';
 			comment += ch;
 		}
-	
+
 		label = _movie->getCast()->decodeString(label).encode(Common::kUtf8);
 
 		_labels->insert(new Label(label, frame, comment));


Commit: f07c7311d580fd25004eae5dd35eebc938614806
    https://github.com/scummvm/scummvm/commit/f07c7311d580fd25004eae5dd35eebc938614806
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-03-15T21:07:15+01:00

Commit Message:
DIRECTOR: Implement Sord chunk loading (not used by ScummVM)

Changed paths:
    engines/director/cast.cpp
    engines/director/cast.h


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 22be9ea352a..2158680c85c 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -459,7 +459,8 @@ void Cast::loadCast() {
 
 	// Score Order List resources
 	if (_castArchive->hasResource(MKTAG('S', 'o', 'r', 'd'), -1)) {
-		debug("STUB: Unhandled 'Sord' resource");
+		loadSord(*(r = _castArchive->getFirstResource(MKTAG('S', 'o', 'r', 'd'))));
+		delete r;
 	}
 
 	// Now process STXTs
@@ -1318,4 +1319,34 @@ Common::U32String Cast::decodeString(const Common::String &str) {
 	return fixedStr.decode(encoding);
 }
 
+// Score order, 'Sord' resource
+//
+// Enlists all cast members as they're used in the movie
+// It is used for more effective preloading
+//
+// And as such, not currently used by the ScummVM
+void Cast::loadSord(Common::SeekableReadStreamEndian &stream) {
+	stream.readUint32();
+	stream.readUint32();
+	stream.readUint32();
+	stream.readUint32();
+	stream.readUint16();
+	stream.readUint16();
+
+	uint numEntries = 0;
+	uint16 castLibId = 0; // default for pre-D5
+	uint16 memberId;
+	while (!stream.eos()) {
+
+		if (_version >= kFileVer500)
+			castLibId = stream.readUint16LE();
+
+		memberId = stream.readUint16LE();
+
+		numEntries++;
+	}
+
+	debugC(1, kDebugLoading, "Cast::loadSord(): number of entries: %d", numEntries);
+}
+
 } // End of namespace Director
diff --git a/engines/director/cast.h b/engines/director/cast.h
index a0ee88a83f8..5c018ece68c 100644
--- a/engines/director/cast.h
+++ b/engines/director/cast.h
@@ -83,6 +83,7 @@ public:
 	void loadCastInfo(Common::SeekableReadStreamEndian &stream, uint16 id);
 	void loadLingoContext(Common::SeekableReadStreamEndian &stream);
 	void loadExternalSound(Common::SeekableReadStreamEndian &stream);
+	void loadSord(Common::SeekableReadStreamEndian &stream);
 
 	void loadCastChildren();
 	void loadSoundCasts();




More information about the Scummvm-git-logs mailing list