[Scummvm-git-logs] scummvm master -> 2dc0208a38d60b0e9431455c860d709995fcb004
sev-
sev at scummvm.org
Tue Jul 7 22:30:31 UTC 2020
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:
2dc0208a38 DIRECTOR: Parse 'vers' chunk from Mac Projectors
Commit: 2dc0208a38d60b0e9431455c860d709995fcb004
https://github.com/scummvm/scummvm/commit/2dc0208a38d60b0e9431455c860d709995fcb004
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-08T00:30:12+02:00
Commit Message:
DIRECTOR: Parse 'vers' chunk from Mac Projectors
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 3b2bbf66b0..ccee3abf9f 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -73,6 +73,32 @@ Common::Error Stage::loadInitialMovie() {
if (_mainArchive->hasResource(MKTAG('B', 'N', 'D', 'L'), "Projector")) {
warning("Detected Projector file");
+ if (_mainArchive->hasResource(MKTAG('v', 'e', 'r', 's'), -1)) {
+ Common::Array<uint16> vers = _mainArchive->getResourceIDList(MKTAG('v', 'e', 'r', 's'));
+ for (Common::Array<uint16>::iterator iterator = vers.begin(); iterator != vers.end(); ++iterator) {
+ Common::SeekableSubReadStreamEndian *vvers = _mainArchive->getResource(MKTAG('v', 'e', 'r', 's'), *iterator);
+ byte majorVer = vvers->readByte();
+ byte minorVer = vvers->readByte();
+ byte devStage = vvers->readByte();
+ const char *devStr;
+ switch (devStage) {
+ case 0x20: devStr = "Prealpha"; break;
+ case 0x40: devStr = "Alpha"; break;
+ case 0x60: devStr = "Beta"; break;
+ case 0x80: devStr = "Final"; break;
+ default: devStr = "";
+ }
+
+ byte preReleaseVer = vvers->readByte();
+ uint16 region = vvers->readUint16BE();
+ Common::String str = vvers->readPascalString();
+ Common::String msg = vvers->readPascalString();
+
+ debug(0, "Detected vers %d.%d %s.%d region %d '%s' '%s'", majorVer, minorVer, devStr,
+ preReleaseVer, region, str.c_str(), msg.c_str());
+ }
+ }
+
if (_mainArchive->hasResource(MKTAG('X', 'C', 'O', 'D'), -1)) {
Common::Array<uint16> xcod = _mainArchive->getResourceIDList(MKTAG('X', 'C', 'O', 'D'));
for (Common::Array<uint16>::iterator iterator = xcod.begin(); iterator != xcod.end(); ++iterator) {
More information about the Scummvm-git-logs
mailing list