[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