aboutsummaryrefslogtreecommitdiff
path: root/engines/composer/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/composer/detection.cpp')
-rw-r--r--engines/composer/detection.cpp71
1 files changed, 62 insertions, 9 deletions
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 8c97b6c4db..2ca00f9f53 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -74,7 +74,7 @@ static const ComposerGameDescription gameDescriptions[] = {
AD_ENTRY1("book.ini", "dbc98c566f4ac61b544443524585dccb"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_USEEXTRAASTITLE,
+ ADGF_USEEXTRAASTITLE | ADGF_DEMO,
Common::GUIO_NONE
},
GType_ComposerV1
@@ -84,7 +84,7 @@ static const ComposerGameDescription gameDescriptions[] = {
{
"liam",
0,
- AD_ENTRY1("install.inf", "320d2f1d4f8dd96947676ae25d6688c6"),
+ AD_ENTRY1s("book.ini", "fc9d9b9e72e7301d011b808606eaa15b", 834),
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
@@ -101,7 +101,7 @@ static const ComposerGameDescription gameDescriptions[] = {
AD_ENTRY1("book.ini", "3dede2522bb0886c95667b082987a87f"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_USEEXTRAASTITLE,
+ ADGF_USEEXTRAASTITLE | ADGF_DEMO,
Common::GUIO_NONE
},
GType_ComposerV2
@@ -111,7 +111,11 @@ static const ComposerGameDescription gameDescriptions[] = {
{
"darby",
0,
- AD_ENTRY1("install.inf", "e83cc20ee18a2e138da1aadfc640dff2"),
+ {
+ {"book.ini", 0, "7e3404c559d058521fff2aebe5c427a8", 2545},
+ {"page99.rsc", 0, "49cc6b16caa1c5ec7d94a3c47eed9a02", 1286480},
+ AD_LISTEND
+ },
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
@@ -120,6 +124,19 @@ static const ComposerGameDescription gameDescriptions[] = {
GType_ComposerV2
},
+ {
+ {
+ "darby",
+ 0,
+ AD_ENTRY1("Darby the Dragon.ini", "d81f9214936fa70d42fc578908d4bb3d"),
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
{ // Provided by Strangerke, "CD-Rom 100% Malin" Pack
{
"darby",
@@ -137,7 +154,11 @@ static const ComposerGameDescription gameDescriptions[] = {
{
"gregory",
0,
- AD_ENTRY1("install.inf", "b7e9d6f7949d412dad0a183375069844"),
+ {
+ {"book.ini", 0, "14a562dcf361773445255af9f3e94790", 2234},
+ {"page99.rsc", 0, "01f9381162467e052dfd4c704169ef3e", 388644},
+ AD_LISTEND
+ },
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
@@ -146,6 +167,19 @@ static const ComposerGameDescription gameDescriptions[] = {
GType_ComposerV2
},
+ {
+ {
+ "gregory",
+ 0,
+ AD_ENTRY1("Gregory.ini", "fa82f14731f28c7379c5a106df07a0d6"),
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
{ // Provided by Strangerke, "CD-Rom 100% Malin" Pack
{
"gregory",
@@ -159,11 +193,15 @@ static const ComposerGameDescription gameDescriptions[] = {
GType_ComposerV2
},
- {
+ { // Provided by sev
{
"princess",
0,
- AD_ENTRY1s("install.inf", "f1cf45db3c4c54a0d2d89d359af8f334", 244),
+ {
+ {"book.ini", 0, "fb32572577b9a41ba299825ef1e3181e", 966},
+ {"page99.rsc", 0, "fd5ebd3b5e36c4651c50241619525355", 45418},
+ AD_LISTEND
+ },
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
@@ -172,11 +210,15 @@ static const ComposerGameDescription gameDescriptions[] = {
GType_ComposerV2
},
- {
+ { // Provided by sev
{
"sleepingcub",
0,
- AD_ENTRY1s("install.inf", "1092e753b8692463f41b8c0b1931398e", 251),
+ {
+ {"book.ini", 0, "0d329e592387009c6387a733a3ea2235", 964},
+ {"page99.rsc", 0, "219fbd9bd2ff87c7023814405d753145", 46916},
+ AD_LISTEND
+ },
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
@@ -192,10 +234,21 @@ static const ComposerGameDescription gameDescriptions[] = {
using namespace Composer;
+// we match from data too, to stop detection from a non-top-level directory
+const static char *directoryGlobs[] = {
+ "data",
+ "programs",
+ "princess",
+ "sleepcub",
+ 0
+};
+
class ComposerMetaEngine : public AdvancedMetaEngine {
public:
ComposerMetaEngine() : AdvancedMetaEngine(Composer::gameDescriptions, sizeof(Composer::ComposerGameDescription), composerGames) {
_singleid = "composer";
+ _maxScanDepth = 2;
+ _directoryGlobs = directoryGlobs;
}
virtual const char *getName() const {