[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