[Scummvm-git-logs] scummvm master -> ebbd65e13bfcb0431ff2d732607504059737a5f3
sev-
sev at scummvm.org
Mon Aug 3 08:23:12 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:
ebbd65e13b DIRECTOR: Added 'extra' field to the patcher
Commit: ebbd65e13bfcb0431ff2d732607504059737a5f3
https://github.com/scummvm/scummvm/commit/ebbd65e13bfcb0431ff2d732607504059737a5f3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T10:22:01+02:00
Commit Message:
DIRECTOR: Added 'extra' field to the patcher
Some games have more than one version. In order to have possibility
to specify what is it, we now match desc.extra too
Changed paths:
engines/director/detection.cpp
engines/director/director.h
engines/director/lingo/lingo-patcher.cpp
diff --git a/engines/director/detection.cpp b/engines/director/detection.cpp
index f93a05d71c..1b3d20c45b 100644
--- a/engines/director/detection.cpp
+++ b/engines/director/detection.cpp
@@ -58,6 +58,10 @@ Common::Language DirectorEngine::getLanguage() const {
return _gameDescription->desc.language;
}
+const char *DirectorEngine::getExtra() {
+ return _gameDescription->desc.extra;
+}
+
Common::String DirectorEngine::getEXEName() const {
StartMovie startMovie = getStartMovie();
if (startMovie.startMovie.size() > 0)
diff --git a/engines/director/director.h b/engines/director/director.h
index 5ad693af3d..1bb44a4de4 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -173,6 +173,7 @@ public:
uint16 getVersion() const;
Common::Platform getPlatform() const;
Common::Language getLanguage() const;
+ const char *getExtra();
Common::String getEXEName() const;
StartMovie getStartMovie() const;
DirectorSound *getSoundManager() const { return _soundManager; }
diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index 90d6d92531..16d082fc55 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -32,6 +32,7 @@ using namespace Common;
struct ScriptPatch {
const char *gameId;
+ const char *extra;
Common::Platform platform; // Specify kPlatformUnknown for skipping platform check
const char *movie;
ScriptType type;
@@ -41,107 +42,107 @@ struct ScriptPatch {
const char *replace;
} const scriptPatches[] = {
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
- {"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
3, "Channels 17 to 18", ""},
- {"warlock", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "WARLOCKSHIP/UpForeECall", kScoreScript, 12,
4, "Frames 150 to 160", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
2, "SS Warlock:DATA:WARLOCKSHIP:HangStairsFore", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
3, "Channels 4 to 5", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HE.Aft", kScoreScript, 8,
4, "Frames 20 to 20", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
2, "SS Warlock:ENG.Fold:C9", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
3, "Channels 19 to 20", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/ENG/D10", kScoreScript, 8,
4, "Frames 165 to 180", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.c2", kScoreScript, 10,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.c2", kScoreScript, 10,
2, "Frames 150 to 160", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
3, "Channels 17 to 18", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.ForeECall", kScoreScript, 12,
4, "Frames 150 to 160", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
3, "Channels 17 to 18", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/Up.B2", kScoreScript, 9,
4, "Frames 150 to 160", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/BELSHAZZAR/STELLA/ORIGIN", kScoreScript, 12,
+ {"warlock", "", kPlatformMacintosh, "DATA/BELSHAZZAR/STELLA/ORIGIN", kScoreScript, 12,
2, "Frames 1 to 1", ""},
// Garbage at end of script
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
2, "SS Warlock:DATA:WARLOCKSHIP:HangStairsFore", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
3, "Channels 4 to 5", ""},
- {"warlock", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
+ {"warlock", "", kPlatformMacintosh, "DATA/WARLOCKSHIP/HangHallAft", kScoreScript, 7,
4, "Frames 20 to 20", ""},
// Stray 'then' (obvious copy/paste error)
- {"warlock", kPlatformMacintosh, "DATA/K/KT/OutMarauderKT", kMovieScript, 2,
+ {"warlock", "", kPlatformMacintosh, "DATA/K/KT/OutMarauderKT", kMovieScript, 2,
23, "set Spacesuit = 0 then", "set Spacesuit = 0"},
// Unbalanced 'end if' at the end of the script
- {"warlock", kPlatformMacintosh, "DATA/STAMBUL/DRUNK", kMovieScript, 4,
+ {"warlock", "", kPlatformMacintosh, "DATA/STAMBUL/DRUNK", kMovieScript, 4,
5, "end if", ""},
// Unbalanced 'end if' at the end of the script
- {"warlock", kPlatformMacintosh, "STAMBUL/DRUNK", kMovieScript, 5,
+ {"warlock", "", kPlatformMacintosh, "STAMBUL/DRUNK", kMovieScript, 5,
5, "end if", ""},
// Missing '&'
- {"warlock", kPlatformMacintosh, "DATA/NAV/Shared Cast", kMovieScript, 1,
+ {"warlock", "", kPlatformMacintosh, "DATA/NAV/Shared Cast", 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,
+ {"warlock", "", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
2, "SS Warlock:DATA:WARLOCKSHIP:Up.GCGunner", ""},
- {"warlock", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
3, "Channels 17 to 18", ""},
- {"warlock", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
+ {"warlock", "", kPlatformWindows, "WRLCKSHP/UpForeECall", kScoreScript, 12,
4, "Frames 150 to 160", ""},
// Unbalanced 'end if' at the end of the script
- {"warlock", kPlatformWindows, "STAMBUL/DRUNK", kMovieScript, 5,
+ {"warlock", "", kPlatformWindows, "STAMBUL/DRUNK", kMovieScript, 5,
5, "end if", ""},
// Missing '&'
- {"warlock", kPlatformUnknown, "NAV/Shared Cast", kMovieScript, 0,
+ {"warlock", "", kPlatformUnknown, "NAV/Shared Cast", kMovieScript, 0,
23, "alert \"Failed Save.\" & return & \"Error message number: \" string ( filer )",
"alert \"Failed Save.\" & return & \"Error message number: \" & string ( filer )"},
- {"warlock", kPlatformUnknown, "NAV/Shared Cast", kMovieScript, 1, // For running by the buildbot
+ {"warlock", "", kPlatformUnknown, "NAV/Shared Cast", kMovieScript, 1, // For running by the buildbot
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,
+ {"jman", "", kPlatformWindows, "mmm/TSA RR 06", kScoreScript, 26,
17, "end if", ""},
- {"jman", kPlatformWindows, "mmm/Mars Space Game 05", kMovieScript, 3,
+ {"jman", "", kPlatformWindows, "mmm/Mars Space Game 05", kMovieScript, 3,
68, "set DamageParameter = (gProcessorSpeed/2) + 7)", "set DamageParameter = (gProcessorSpeed/2) + 7"},
- {nullptr, kPlatformUnknown, nullptr, kNoneScript, 0, 0, nullptr, nullptr}
+ {nullptr, nullptr, kPlatformUnknown, nullptr, kNoneScript, 0, 0, nullptr, nullptr}
};
Common::String Lingo::patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenum) {
@@ -161,7 +162,8 @@ Common::String Lingo::patchLingoCode(Common::String &line, LingoArchive *archive
}
// Now expensive ones
- if (movie.compareToIgnoreCase(patch->movie) || strcmp(patch->gameId, _vm->getGameId())) {
+ if (movie.compareToIgnoreCase(patch->movie) || strcmp(patch->gameId, _vm->getGameId())
+ || strcmp(patch->extra, _vm->getExtra())) {
patch++;
continue;
}
More information about the Scummvm-git-logs
mailing list