aboutsummaryrefslogtreecommitdiff
path: root/engines/adl/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/adl/detection.cpp')
-rw-r--r--engines/adl/detection.cpp85
1 files changed, 72 insertions, 13 deletions
diff --git a/engines/adl/detection.cpp b/engines/adl/detection.cpp
index 7e395169b1..7c196d34cb 100644
--- a/engines/adl/detection.cpp
+++ b/engines/adl/detection.cpp
@@ -87,8 +87,30 @@ static const PlainGameDescriptor adlGames[] = {
{ 0, 0 }
};
+struct AdlGameDescription {
+ ADGameDescription desc;
+ GameType gameType;
+ GameVersion version;
+};
+
static const AdlGameDescription gameFileDescriptions[] = {
- { // Hi-Res Adventure #1: Mystery House - Apple II - 1987 PD release
+ { // Hi-Res Adventure #1: Mystery House - Apple II - 2nd release
+ {
+ "hires1", 0,
+ {
+ { "ADVENTURE", 0, "22d9e63a11d69fa033ba1738715ad09a", 29952 },
+ { "AUTO LOAD OBJ", 0, "f6a6ac60c04c6ba6dff68b92cc279ba2", 12291 },
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformApple2,
+ ADGF_NO_FLAGS,
+ GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES)
+ },
+ GAME_TYPE_HIRES1,
+ GAME_VER_HR1_COARSE
+ },
+ { // Hi-Res Adventure #1: Mystery House - Apple II - Roberta Williams Anthology
{
"hires1", 0,
{
@@ -102,9 +124,10 @@ static const AdlGameDescription gameFileDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES1
+ GAME_TYPE_HIRES1,
+ GAME_VER_HR1_PD
},
- { AD_TABLE_END_MARKER, GAME_TYPE_NONE }
+ { AD_TABLE_END_MARKER, GAME_TYPE_NONE, GAME_VER_NONE }
};
static const AdlGameDescription gameDiskDescriptions[] = {
@@ -120,7 +143,23 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES1
+ GAME_TYPE_HIRES1,
+ GAME_VER_HR1_PD
+ },
+ { // Hi-Res Adventure #1: Mystery House - Apple II - 2nd release
+ {
+ "hires1", 0,
+ {
+ { "mysthous", 0, "8df0b3b3e609a2e40237e2419c1cb767", 116480 },
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformApple2,
+ ADGF_NO_FLAGS,
+ GUIO2(GAMEOPTION_COLOR_DEFAULT_OFF, GAMEOPTION_SCANLINES)
+ },
+ GAME_TYPE_HIRES1,
+ GAME_VER_HR1_COARSE
},
{ // Hi-Res Adventure #2: Wizard and the Princess - Apple II - Roberta Williams Anthology
{
@@ -134,7 +173,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES2
+ GAME_TYPE_HIRES2,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #0: Mission Asteroid - Apple II - Roberta Williams Anthology
{
@@ -148,7 +188,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES0
+ GAME_TYPE_HIRES0,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #3: Cranston Manor - Apple II
{
@@ -162,7 +203,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES3
+ GAME_TYPE_HIRES3,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Apple II - Load 'N' Go
{
@@ -177,7 +219,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES4
+ GAME_TYPE_HIRES4,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Atari 8-bit - Re-release
{
@@ -194,7 +237,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_UNSTABLE,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES4
+ GAME_TYPE_HIRES4,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #5: Time Zone - Apple II - Version 1.1 - Roberta Williams Anthology
{
@@ -219,7 +263,8 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES5
+ GAME_TYPE_HIRES5,
+ GAME_VER_NONE
},
{ // Hi-Res Adventure #6: The Dark Crystal - Apple II - Roberta Williams Anthology
{
@@ -236,9 +281,10 @@ static const AdlGameDescription gameDiskDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
},
- GAME_TYPE_HIRES6
+ GAME_TYPE_HIRES6,
+ GAME_VER_NONE
},
- { AD_TABLE_END_MARKER, GAME_TYPE_NONE }
+ { AD_TABLE_END_MARKER, GAME_TYPE_NONE, GAME_VER_NONE }
};
struct DiskImageExt {
@@ -392,7 +438,8 @@ void AdlMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(fileName);
}
-Common::String getDiskImageName(const ADGameDescription &desc, byte volume) {
+Common::String getDiskImageName(const AdlGameDescription &adlDesc, byte volume) {
+ const ADGameDescription &desc = adlDesc.desc;
for (uint i = 0; desc.filesDescriptions[i].fileName; ++i) {
const ADGameFileDescription &fDesc = desc.filesDescriptions[i];
@@ -413,6 +460,18 @@ Common::String getDiskImageName(const ADGameDescription &desc, byte volume) {
error("Disk volume %d not found", volume);
}
+GameType getGameType(const AdlGameDescription &adlDesc) {
+ return adlDesc.gameType;
+}
+
+GameVersion getGameVersion(const AdlGameDescription &adlDesc) {
+ return adlDesc.version;
+}
+
+Common::Platform getPlatform(const AdlGameDescription &adlDesc) {
+ return adlDesc.desc.platform;
+}
+
bool AdlMetaEngine::addFileProps(const FileMap &allFiles, Common::String fname, ADFilePropertiesMap &filePropsMap) const {
if (filePropsMap.contains(fname))
return true;