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

sev- noreply at scummvm.org
Tue Oct 28 23:50:03 UTC 2025


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

Summary:
ed8e7cc12f DIRECTOR: Implement 'cupt' resource loading for Cue points


Commit: ed8e7cc12fd1c854b92540213145030854fa98a3
    https://github.com/scummvm/scummvm/commit/ed8e7cc12fd1c854b92540213145030854fa98a3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-29T00:49:17+01:00

Commit Message:
DIRECTOR: Implement 'cupt' resource loading for Cue points

Changed paths:
    engines/director/castmember/sound.cpp
    engines/director/castmember/sound.h
    engines/director/lingo/lingo-bytecode.cpp


diff --git a/engines/director/castmember/sound.cpp b/engines/director/castmember/sound.cpp
index 005974a16d4..c300f04a8d6 100644
--- a/engines/director/castmember/sound.cpp
+++ b/engines/director/castmember/sound.cpp
@@ -121,6 +121,24 @@ void SoundCastMember::load() {
 					warning("SoundCastMember::load(): Multiple ediM resources in sound cast member %d", _castId);
 				}
 				delete sndData;
+			} else if (it.tag == MKTAG('c', 'u', 'p', 't')) {
+				Common::SeekableReadStreamEndian *sndData = _cast->getResource(it.tag, it.index);
+
+				int32 numCuePoints = sndData->readSint32BE();
+				char cuePointName[32];
+
+				for (int i = 0; i < numCuePoints; i++) {
+					int32 cuePoint = sndData->readSint32BE();
+					_cuePoints.push_back(cuePoint);
+
+					sndData->read(cuePointName, 32);
+					cuePointName[31] = '\0';
+					_cuePointNames.push_back(cuePointName);
+
+					debugC(2, kDebugLoading, "    Cue point %d: %d (%s) in sound cast member %d", i, cuePoint, cuePointName, _castId);
+				}
+			} else {
+				debugC(2, kDebugLoading, "SoundCastMember::load(): Ignoring unknown tag '%s' in sound cast member %d", tag2str(it.tag), _castId);
 			}
 		}
 
diff --git a/engines/director/castmember/sound.h b/engines/director/castmember/sound.h
index 2968096e751..1ba605193ec 100644
--- a/engines/director/castmember/sound.h
+++ b/engines/director/castmember/sound.h
@@ -50,6 +50,9 @@ public:
 
 	bool _looping;
 	AudioDecoder *_audio;
+
+	Common::Array<int32> _cuePoints;
+	Common::StringArray _cuePointNames;
 };
 
 } // End of namespace Director
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index c193c026eec..efca15424dc 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -1658,13 +1658,6 @@ ScriptContext *LingoCompiler::compileLingoV4(Common::SeekableReadStreamEndian &s
 			functionName = g_lingo->_eventHandlerTypes[kEventGeneric];
 		}
 
-		// We need to find movies with 'on cuePassed'
-		if (g_director->getVersion() >= 600) {
-			if (functionName.equalsIgnoreCase("cuePassed")) {
-				error("sev needs this movie as a sample for cuePoints, please talk to him");
-			}
-		}
-
 		Symbol sym;
 		if (!functionName.empty()) {
 			debugC(5, kDebugLoading, "Function %d binding: %s()", i, functionName.c_str());




More information about the Scummvm-git-logs mailing list