diff options
Diffstat (limited to 'engines/sci/detection.cpp')
-rw-r--r-- | engines/sci/detection.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp index c920ef10e2..a00da7c5fd 100644 --- a/engines/sci/detection.cpp +++ b/engines/sci/detection.cpp @@ -89,6 +89,7 @@ static const PlainGameDescriptor s_sciGameTitles[] = { {"ecoquest2", "EcoQuest II: Lost Secret of the Rainforest"}, {"freddypharkas", "Freddy Pharkas: Frontier Pharmacist"}, {"hoyle4", "Hoyle Classic Card Games"}, + {"inndemo", "ImagiNation Network (INN) Demo"}, {"kq6", "King's Quest VI: Heir Today, Gone Tomorrow"}, {"laurabow2", "Laura Bow 2: The Dagger of Amon Ra"}, {"qfg1vga", "Quest for Glory I: So You Want to Be a Hero"}, // Note: There was also a SCI0 version of this (further up) @@ -106,6 +107,10 @@ static const PlainGameDescriptor s_sciGameTitles[] = { {"pq4", "Police Quest IV: Open Season"}, // floppy is SCI2, CD SCI2.1 {"qfg4", "Quest for Glory IV: Shadows of Darkness"}, // floppy is SCI2, CD SCI2.1 // === SCI2.1 games ======================================================== + {"hoyle5", "Hoyle Classic Games"}, + {"hoyle5bridge", "Hoyle Bridge"}, + {"hoyle5children", "Hoyle Children's Collection"}, + {"hoyle5solitaire", "Hoyle Solitaire"}, {"chest", "Inside the Chest"}, // aka Behind the Developer's Shield {"gk2", "The Beast Within: A Gabriel Knight Mystery"}, {"kq7", "King's Quest VII: The Princeless Bride"}, @@ -156,7 +161,12 @@ static const GameIdStrToEnum s_gameIdStrToEnum[] = { { "hoyle2", GID_HOYLE2 }, { "hoyle3", GID_HOYLE3 }, { "hoyle4", GID_HOYLE4 }, + { "hoyle5", GID_HOYLE5 }, + { "hoyle5bridge", GID_HOYLE5 }, + { "hoyle5children", GID_HOYLE5 }, + { "hoyle5solitaire", GID_HOYLE5 }, { "iceman", GID_ICEMAN }, + { "inndemo", GID_INNDEMO }, { "islandbrain", GID_ISLANDBRAIN }, { "jones", GID_JONES }, { "kq1sci", GID_KQ1 }, @@ -395,6 +405,16 @@ static const ADExtraGuiOptionsMap optionsList[] = { }, { + GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, + { + _s("Enable black-lined video"), + _s("Draw black lines over videos to increase their apparent sharpness"), + "enable_black_lined_video", + false + } + }, + + { GAMEOPTION_PREFER_DIGITAL_SFX, { _s("Prefer digital sound effects"), @@ -536,7 +556,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, s_fallbackDesc.guiOptions = GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI); if (allFiles.contains("resource.map") || allFiles.contains("Data1") - || allFiles.contains("resmap.001") || allFiles.contains("resmap.001")) { + || allFiles.contains("resmap.000") || allFiles.contains("resmap.001")) { foundResMap = true; } @@ -545,8 +565,8 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, // the file should be over 10MB, as it contains all the game speech and is usually // around 450MB+. The size check is for some floppy game versions like KQ6 floppy, which // also have a small resource.aud file - if (allFiles.contains("resource.aud") || allFiles.contains("audio001.002")) { - Common::FSNode file = allFiles.contains("resource.aud") ? allFiles["resource.aud"] : allFiles["audio001.002"]; + if (allFiles.contains("resource.aud") || allFiles.contains("resaud.001") || allFiles.contains("audio001.002")) { + Common::FSNode file = allFiles.contains("resource.aud") ? allFiles["resource.aud"] : (allFiles.contains("resaud.001") ? allFiles["resaud.001"] : allFiles["audio001.002"]); Common::SeekableReadStream *tmpStream = file.createReadStream(); if (tmpStream->size() > 10 * 1024 * 1024) { // We got a CD version, so set the CD flag accordingly @@ -752,8 +772,7 @@ SaveStateList SciMetaEngine::listSaves(const char *target) const { SaveStateDescriptor descriptor(slotNr, meta.name); if (slotNr == 0) { - // ScummVM auto-save slot, not used by SCI - // SCI does not support auto-saving, but slot 0 is reserved for auto-saving in ScummVM. + // ScummVM auto-save slot descriptor.setWriteProtectedFlag(true); } else { descriptor.setWriteProtectedFlag(false); @@ -775,9 +794,8 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName); SaveStateDescriptor descriptor(slotNr, ""); - // Do not allow save slot 0 (used for auto-saving) to be deleted or - // overwritten. SCI does not support auto-saving, but slot 0 is reserved for auto-saving in ScummVM. if (slotNr == 0) { + // ScummVM auto-save slot descriptor.setWriteProtectedFlag(true); descriptor.setDeletableFlag(false); } else { @@ -787,7 +805,7 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl if (in) { SavegameMetadata meta; - + if (!get_savegame_metadata(in, &meta)) { // invalid delete in; |