[Scummvm-git-logs] scummvm master -> 270511dd5c37edb6ce053353cd0fa799e3b6112d

djsrv dservilla at gmail.com
Mon Jul 20 19:24:58 UTC 2020


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

Summary:
854300607c DIRECTOR: Fix mac name
758a90ab32 DIRECTOR: LINGO: Patch Warlock script
270511dd5c DIRECTOR: LINGO: Fix patcher debug


Commit: 854300607c5fe31f6efdd71e7a41ee1bf0cb4a5f
    https://github.com/scummvm/scummvm/commit/854300607c5fe31f6efdd71e7a41ee1bf0cb4a5f
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-20T15:24:22-04:00

Commit Message:
DIRECTOR: Fix mac name

Changed paths:
    engines/director/archive.cpp
    engines/director/archive.h
    engines/director/cast.cpp
    engines/director/lingo/lingo-patcher.cpp
    engines/director/movie.cpp
    engines/director/resource.cpp
    engines/director/stage.cpp
    engines/director/util.cpp
    engines/director/util.h


diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index d0313876c0..c5fb369449 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -27,6 +27,7 @@
 
 #include "director/director.h"
 #include "director/archive.h"
+#include "director/util.h"
 
 namespace Director {
 
@@ -41,6 +42,8 @@ Archive::~Archive() {
 	close();
 }
 
+Common::String Archive::getFileName() const { return Director::getFileName(_pathName); }
+
 bool Archive::openFile(const Common::String &fileName) {
 	Common::File *file = new Common::File();
 
@@ -50,7 +53,7 @@ bool Archive::openFile(const Common::String &fileName) {
 		return false;
 	}
 
-	_fileName = fileName;
+	_pathName = fileName;
 
 	if (!openStream(file)) {
 		warning("Archive::openFile(): Error loading stream from file %s", fileName.c_str());
@@ -225,10 +228,10 @@ bool MacArchive::openFile(const Common::String &fileName) {
 		return false;
 	}
 
-	_fileName = _resFork->getBaseFileName();
-	if (_fileName.hasSuffix(".bin")) {
+	_pathName = _resFork->getBaseFileName();
+	if (_pathName.hasSuffix(".bin")) {
 		for (int i = 0; i < 4; i++)
-			_fileName.deleteLastChar();
+			_pathName.deleteLastChar();
 	}
 
 	readTags();
@@ -251,8 +254,8 @@ bool MacArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffs
 		return false;
 	}
 
-	_fileName = "<stream>";
-	_resFork->setBaseFileName(_fileName);
+	_pathName = "<stream>";
+	_resFork->setBaseFileName(_pathName);
 
 	readTags();
 
@@ -534,8 +537,8 @@ bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
 				dataSize = resources[i]->size;
 			}
 			Common::String prepend;
-			if (_fileName.size() != 0)
-				prepend = _fileName;
+			if (_pathName.size() != 0)
+				prepend = _pathName;
 			else
 				prepend = "stream";
 
diff --git a/engines/director/archive.h b/engines/director/archive.h
index 6f51903dfe..934802230c 100644
--- a/engines/director/archive.h
+++ b/engines/director/archive.h
@@ -52,8 +52,9 @@ public:
 	virtual bool openStream(Common::SeekableReadStream *stream, uint32 offset = 0) = 0;
 	virtual void close();
 
-	Common::String getFileName() const { return _fileName; }
-	void setFileName(const Common::String &name) { _fileName = name; }
+	Common::String getPathName() const { return _pathName; }
+	Common::String getFileName() const;
+	void setPathName(const Common::String &name) { _pathName = name; }
 	int getFileSize();
 
 	bool isOpen() const { return _stream != 0; }
@@ -78,7 +79,7 @@ protected:
 	typedef Common::HashMap<uint32, ResourceMap> TypeMap;
 	TypeMap _types;
 
-	Common::String _fileName;
+	Common::String _pathName;
 };
 
 class MacArchive : public Archive {
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index f4758e1220..4f1194f001 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -224,7 +224,7 @@ bool Cast::loadArchive() {
 	if (_castArchive->hasResource(MKTAG('F', 'O', 'N', 'D'), -1)) {
 		debug("Cast::loadArchive(): Movie has fonts. Loading....");
 
-		_vm->_wm->_fontMan->loadFonts(_castArchive->getFileName());
+		_vm->_wm->_fontMan->loadFonts(_castArchive->getPathName());
 	}
 
 	// CastMember Information Array
diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index 2dd188fc2f..5fbf394284 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -40,15 +40,15 @@ struct ScriptPatch {
 	const char *replace;
 } const scriptPatches[] = {
 	// Garbage at end of script
-	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
 			2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
-	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
 			3, "Channels 17 to 18", ""},
-	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+	{"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
 			4, "Frames 150 to 160", ""},
 
 	// Unbalanced 'end if' at the end of the script
-	{"warlock", kPlatformMacintosh, "STAMBUL/STAMBUL/DRUNK", kMovieScript, 5,
+	{"warlock", kPlatformMacintosh, "STAMBUL/DRUNK", kMovieScript, 5,
 			5, "end if", ""},
 
 	// Garbage at end of script
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 1715d6acb2..b13a996ad4 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -254,7 +254,7 @@ void Movie::loadSharedCastsFrom(Common::String filename) {
 
 		return;
 	}
-	sharedCast->setFileName(filename);
+	sharedCast->setPathName(filename);
 
 	debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
 	debug(0, "@@@@   Loading shared cast '%s'", filename.c_str());
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 5f31ccf869..26c07a83ea 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -214,7 +214,7 @@ void Stage::loadEXE(const Common::String movie) {
 	}
 
 	if (_mainArchive)
-		_mainArchive->setFileName(movie);
+		_mainArchive->setPathName(movie);
 }
 
 void Stage::loadEXEv3(Common::SeekableReadStream *stream) {
@@ -344,7 +344,7 @@ void Stage::loadMac(const Common::String movie) {
 
 		Common::SeekableReadStream *dataFork = _macBinary->getDataFork();
 		_mainArchive = new RIFXArchive();
-		_mainArchive->setFileName(movie);
+		_mainArchive->setPathName(movie);
 
 		// First we need to detect PPC vs. 68k
 
diff --git a/engines/director/stage.cpp b/engines/director/stage.cpp
index 4445830b79..79b96edbb6 100644
--- a/engines/director/stage.cpp
+++ b/engines/director/stage.cpp
@@ -428,7 +428,7 @@ bool Stage::step() {
 
 		g_lingo->resetLingo();
 		if (sharedCast && sharedCast->_castArchive
-				&& sharedCast->_castArchive->getFileName().equalsIgnoreCase(_currentPath + _vm->_sharedCastFile)) {
+				&& sharedCast->_castArchive->getPathName().equalsIgnoreCase(_currentPath + _vm->_sharedCastFile)) {
 			_currentMovie->_sharedCast = sharedCast;
 		} else {
 			delete sharedCast;
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index e45af11c10..34f00b8698 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -402,6 +402,14 @@ Common::String pathMakeRelative(Common::String path, bool recursive, bool addext
 		return initialPath;
 }
 
+Common::String getFileName(Common::String path) {
+	while (path.contains('/')) {
+		int pos = path.find('/');
+		path = Common::String(&path.c_str()[pos + 1]);
+	}
+	return path;
+}
+
 //////////////////
 ////// Mac --> Windows filename conversion
 //////////////////
diff --git a/engines/director/util.h b/engines/director/util.h
index 038533d17c..cfd2317b2f 100644
--- a/engines/director/util.h
+++ b/engines/director/util.h
@@ -40,6 +40,8 @@ Common::String getPath(Common::String path, Common::String cwd);
 
 Common::String pathMakeRelative(Common::String path, bool recursive = true, bool addexts = true);
 
+Common::String getFileName(Common::String path);
+
 Common::String stripMacPath(const char *name);
 
 Common::String convertMacFilename(const char *name);


Commit: 758a90ab325ac0b8efe5a0a4901c0614ab735b8e
    https://github.com/scummvm/scummvm/commit/758a90ab325ac0b8efe5a0a4901c0614ab735b8e
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-20T15:24:22-04:00

Commit Message:
DIRECTOR: LINGO: Patch Warlock script

Changed paths:
    engines/director/lingo/lingo-patcher.cpp


diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index 5fbf394284..0f1cf9c823 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -51,6 +51,11 @@ struct ScriptPatch {
 	{"warlock", kPlatformMacintosh, "STAMBUL/DRUNK", kMovieScript, 5,
 			5, "end if", ""},
 
+	// Missing '&'
+	{"warlock", kPlatformMacintosh, "DATA/NAV/A1 Reactor", kMovieScript, 1,
+			19, "alert \"Failed Save.\" & return & \"Error message number: \" string ( filer )",
+				"alert \"Failed Save.\" & return & \"Error message number: \" & string ( filer )"},
+
 	// Garbage at end of script
 	{"warlock", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
 			2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
@@ -63,6 +68,11 @@ struct ScriptPatch {
 	{"warlock", kPlatformWindows, "STAMBUL/DRUNK", kMovieScript, 5,
 			5, "end if", ""},
 
+	// Missing '&'
+	{"warlock", kPlatformWindows, "NAV/A1 Reactor", kMovieScript, 0,
+			23, "alert \"Failed Save.\" & return & \"Error message number: \" string ( filer )",
+				"alert \"Failed Save.\" & return & \"Error message number: \" & string ( filer )"},
+
 
 	// Unbalanced 'end if' at the end of the script
 	{"jman", kPlatformWindows, "mmm/TSA RR 06", kScoreScript, 26,


Commit: 270511dd5c37edb6ce053353cd0fa799e3b6112d
    https://github.com/scummvm/scummvm/commit/270511dd5c37edb6ce053353cd0fa799e3b6112d
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-20T15:24:22-04:00

Commit Message:
DIRECTOR: LINGO: Fix patcher debug

Changed paths:
    engines/director/lingo/lingo-patcher.cpp


diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index 0f1cf9c823..9a218463cd 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -115,7 +115,7 @@ Common::String Lingo::patchLingoCode(Common::String &line, ScriptType type, uint
 		// Now everything matched
 		debugC(1, kDebugParse, "Lingo::patchLingoCode(): Applied a patch for '%s', '%s' %s:%d @ %d. \"%s\" -> \"%s\"",
 				patch->gameId, patch->movie, scriptType2str(type), id, linenum,
-				patch->orig, line.c_str());
+				patch->orig, patch->replace);
 		return patch->replace;
 	}
 




More information about the Scummvm-git-logs mailing list