diff options
author | Pawel Kolodziejski | 2014-07-22 21:22:45 +0200 |
---|---|---|
committer | Pawel Kolodziejski | 2014-07-22 21:22:45 +0200 |
commit | 78258151ea16202ca6fd2587565d477657972a96 (patch) | |
tree | 4b4d8da731666ce30f6623bc0417330745c6fc2d | |
parent | 04ed4d3a8df92e6ee7b7d55051117add2f16903d (diff) | |
download | scummvm-rg350-78258151ea16202ca6fd2587565d477657972a96.tar.gz scummvm-rg350-78258151ea16202ca6fd2587565d477657972a96.tar.bz2 scummvm-rg350-78258151ea16202ca6fd2587565d477657972a96.zip |
WME: added few more games. added ability to detect from exe files.
-rw-r--r-- | engines/wintermute/base/base_file_manager.cpp | 9 | ||||
-rw-r--r-- | engines/wintermute/base/base_file_manager.h | 1 | ||||
-rw-r--r-- | engines/wintermute/detection_tables.h | 111 |
3 files changed, 114 insertions, 7 deletions
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp index 1f78303f52..58684b66a0 100644 --- a/engines/wintermute/base/base_file_manager.cpp +++ b/engines/wintermute/base/base_file_manager.cpp @@ -209,10 +209,15 @@ bool BaseFileManager::registerPackages() { // than the equivalent of using equalsIgnoreCase. Common::String fileName = fileIt->getName(); fileName.toLowercase(); + bool searchSignature = false; - if (!fileName.hasSuffix(".dcp")) { + if (!fileName.hasSuffix(".dcp") && !fileName.hasSuffix(".exe")) { continue; } + if (fileName.hasSuffix(".exe")) { + searchSignature = true; + } + // HACK: for Reversion1, avoid loading xlanguage_pt.dcp from the main folder: if (_language != Common::PT_BRA && targetName.hasPrefix("reversion1")) { if (fileName == "xlanguage_pt.dcp") { @@ -263,7 +268,7 @@ bool BaseFileManager::registerPackages() { } } debugC(kWintermuteDebugFileAccess, "Registering %s %s", fileIt->getPath().c_str(), fileIt->getName().c_str()); - registerPackage((*fileIt)); + registerPackage((*fileIt), "", searchSignature); } } diff --git a/engines/wintermute/base/base_file_manager.h b/engines/wintermute/base/base_file_manager.h index 653721c8f5..d953e44704 100644 --- a/engines/wintermute/base/base_file_manager.h +++ b/engines/wintermute/base/base_file_manager.h @@ -63,7 +63,6 @@ private: Common::SeekableReadStream *openFileRaw(const Common::String &filename); Common::SeekableReadStream *openPkgFile(const Common::String &filename); Common::FSList _packagePaths; - bool findPackageSignature(Common::SeekableReadStream *f, uint32 *offset); bool registerPackage(Common::FSNode package, const Common::String &filename = "", bool searchSignature = false); bool _detectionMode; Common::SearchSet _packages; diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h index 6087e60ece..8206ca9643 100644 --- a/engines/wintermute/detection_tables.h +++ b/engines/wintermute/detection_tables.h @@ -39,41 +39,50 @@ static const PlainGameDescriptor wintermuteGames[] = { {"carolreed8", "Carol Reed 8 - Amber's Blood"}, {"carolreed9", "Carol Reed 9 - Cold Case Summer"}, {"chivalry", "Chivalry is Not Dead"}, - {"corrosion", "Corrosion: Cold Winter Waiting"}, + {"conspiracao", "Conspiracao Dumont"}, + {"corrosion", "Corrosion: Cold Winter Waiting"}, {"deadcity", "Dead City"}, {"dreaming", "Des Reves Elastiques Avec Mille Insectes Nommes Georges"}, {"dirtysplit", "Dirty Split"}, {"dreamscape", "Dreamscape"}, {"escapemansion", "Escape from the Mansion"}, + {"four", "Four"}, {"framed", "Framed"}, {"ghostsheet", "Ghost in the Sheet"}, {"hamlet", "Hamlet or the last game without MMORPS features, shaders and product placement"}, {"helga", "Helga Deep In Trouble"}, {"jamesperis", "James Peris: No License Nor Control"}, {"kulivocko", "Kulivocko"}, + {"lifein3minutes", "Life In 3 Minutes"}, {"lonelyrobot", "Project Lonely Robot"}, {"looky", "Looky"}, {"julia", "J.U.L.I.A."}, {"mirage", "Mirage"}, + {"nighttrain", "Night Train"}, {"oknytt", "Oknytt"}, {"paintaria", "Paintaria"}, {"pigeons", "Pigeons in the Park"}, {"projectdoom", "Project: Doom"}, + {"projectjoe", "Project Joe"}, {"reversion1", "Reversion: The Escape"}, {"reversion2", "Reversion: The Meeting"}, - {"rhiannon", "Rhiannon: Curse of the four Branches"}, - {"ritter", "1 1/2 Ritter: Auf der Suche nach der hinreissenden Herzelinde"}, + {"rhiannon", "Rhiannon: Curse of the four Branches"}, + {"ritter", "1 1/2 Ritter: Auf der Suche nach der hinreissenden Herzelinde"}, {"rosemary", "Rosemary"}, + {"satanandson", "Satan and Son"}, {"securanote", "Securanote"}, {"shaban", "Shaban"}, {"shinestar", "The Shine of a Star"}, {"spaceinvaders", "Space Invaders"}, {"spacemadness", "Space Madness"}, + {"sofiasdebt", "Sofia's Debt"}, + {"theancientmark1", "The Ancient Mark - Episode 1"}, {"thebox", "The Box"}, - {"thekite", "The Kite"}, + {"thekite", "The Kite"}, {"tib", "Fairy Tales About Toshechka and Boshechka"}, {"tradestory", "The Trader of Stories"}, {"twc", "the white chamber"}, + {"war", "War"}, {"vsevolod", "Vsevolod"}, {"wintermute", "Wintermute engine game"}, {"wtetris", "Wilma Tetris"}, @@ -275,6 +284,17 @@ static const ADGameDescription gameDescriptions[] = { ADGF_TESTING, GUIO0() }, + // Conspiracao Dumont + { + "conspiracao", + "", + AD_ENTRY1s("ConspiracaoDumont.exe", "106f3f2c8f18bb5ffffeed634ace256c", 32908032), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // Corrosion: Cold Winter Waiting { "corrosion", @@ -466,6 +486,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Four + { + "four", + "", + AD_ENTRY1s("data.dcp", "ec05cd5e37c9a524053b8859635a4234", 62599855), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // Framed { "framed", @@ -645,6 +675,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_DEMO, GUIO0() }, + // Life In 3 Minutes + { + "lifein3minutes", + "", + AD_ENTRY1s("data.dcp", "c6368950e37a95bf098b02b4eaa5b929", 141787214), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // Looky Demo (English) { "looky", @@ -709,6 +749,17 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Night Train Demo + { + "nighttrain", + "", + AD_ENTRY1s("data.dcp", "5a027ef84b083a730c9a4c85ec1d3a32", 131760816), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // Paintaria { "paintaria", @@ -739,6 +790,17 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Project Joe + { + "projectjoe", + "", + AD_ENTRY1s("data.dcp", "ada3c08542901295076b5349e655e73f", 160780037), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // Project Lonely Robot { "lonelyrobot", @@ -1138,6 +1200,17 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Satan and Son + { + "satanandson", + "", + AD_ENTRY1s("data.dcp", "16a6ba8174b697bbba9299619d1e20c4", 67539054), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // Rosemary { "rosemary", @@ -1178,6 +1251,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Sofia's Debt + { + "sofiasdebt", + "", + AD_ENTRY1s("SD.exe", "e9515f9ba1a2925bb6733476a826a650", 9915047), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // Space Invaders (Demo) { "spaceinvaders", @@ -1199,6 +1282,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // The Ancient Mark - Episode 1 + { + "theancientmark1", + "", + AD_ENTRY1s("data.dcp", "ca04c26f03b2bd307368b306b297ddd7", 364664692), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // The Box { "thebox", @@ -1301,6 +1394,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_DEMO, GUIO0() }, + // War + { + "war", + "", + AD_ENTRY1s("data.dcp", "003e317cda6d0137bbd5e5d7f089ee4d", 32591890), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // Wilma Tetris { "wtetris", |