diff --git a/engines/access/access.cpp b/engines/access/access.cpp index 78274f1d59e1..cb1977a7f1d5 100644 --- a/engines/access/access.cpp +++ b/engines/access/access.cpp @@ -154,6 +154,18 @@ void AccessEngine::initialize() { DebugMan.addDebugChannel(kDebugScripts, "scripts", "Game scripts"); DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling"); + if (isCD()) { + const Common::FSNode gameDataDir(ConfMan.get("path")); + const Common::FSNode cdromDir = gameDataDir.getChild("cdrom"); + + for (int idx = 0; idx < 15; ++idx) { + Common::String folder = (idx == 0) ? "game" : + Common::String::format("chap%.2d", idx); + SearchMan.addSubDirectoryMatching(cdromDir, folder); + } + } + + // Create sub-objects of the engine _debugger = new Debugger(this); _events = new EventsManager(this); _files = new FileManager(this); diff --git a/engines/access/access.h b/engines/access/access.h index a0099402fdd3..18278bf56b51 100644 --- a/engines/access/access.h +++ b/engines/access/access.h @@ -200,6 +200,7 @@ class AccessEngine : public Engine { virtual ~AccessEngine(); uint32 getFeatures() const; + bool isCD() const; Common::Language getLanguage() const; Common::Platform getPlatform() const; uint16 getVersion() const; diff --git a/engines/access/detection.cpp b/engines/access/detection.cpp index ca04a64b0d2e..47f7af6191ab 100644 --- a/engines/access/detection.cpp +++ b/engines/access/detection.cpp @@ -56,6 +56,10 @@ uint32 AccessEngine::getFeatures() const { return _gameDescription->desc.flags; } +bool AccessEngine::isCD() const { + return (bool)(_gameDescription->desc.flags & ADGF_CD); +} + Common::Language AccessEngine::getLanguage() const { return _gameDescription->desc.language; } diff --git a/engines/access/detection_tables.h b/engines/access/detection_tables.h index cbef1d3b63a4..ad962f47b23e 100644 --- a/engines/access/detection_tables.h +++ b/engines/access/detection_tables.h @@ -41,6 +41,24 @@ static const AccessGameDescription gameDescriptions[] = { 0 }, + { + // Amazon Guadians of Eden - CD English + { + "amazon", + "CD", + { + { "checksum.crc", 0, "bef85478132fec74cb5d9067f3a37d24", 8 }, + AD_LISTEND + }, + Common::EN_ANY, + Common::kPlatformDOS, + ADGF_CD, + GUIO1(GUIO_NONE) + }, + GType_Amazon, + 0 + }, + { AD_TABLE_END_MARKER, 0, 0 } };