[Scummvm-cvs-logs] scummvm master -> ae16c989ae54dc9ca4440bd160952826cb624857
digitall
dgturner at iee.org
Mon Feb 10 16:06:05 CET 2014
This automated email contains information about 13 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b61c770d0f QUEEN: Move current detection code into separate source file.
2c0ed5e252 QUEEN: Minor cleanup of detection code.
54e44486b0 QUEEN: Initial work to migrate to Advanced Detector.
4ad17f29ba QUEEN: Add detection entries for Advanced Detector.
5dca63221d QUEEN: Add further detection entries for Advanced Detector.
6db7b81d5c QUEEN: Restore previous detection code as fallback detector.
be9833a43f QUEEN: Switch unknown md5sums in detection entries for NULL.
6814ce68bf QUEEN: Disable detection entries with unknown MD5sums.
7382fe0ba2 QUEEN: Fix missing GUIO_NOSPEECH flag on Demo and Floppy AD entries.
d1b7fd9b87 QUEEN: Migrate listSaves() function to game target for save naming.
7d4c625c4e QUEEN: Switch all savegame usage back to "queen.sXX" format.
1348b82aaa QUEEN: Migrate extra gui options to AdvancedMetaEngine handling.
ae16c989ae Merge pull request #407 from digitall/advancedDetector_queen
Commit: b61c770d0f72db388cc0b3300065492ddf6b6d40
https://github.com/scummvm/scummvm/commit/b61c770d0f72db388cc0b3300065492ddf6b6d40
Author: D G Turner (digitall at scummvm.org)
Date: 2013-10-04T22:24:42-07:00
Commit Message:
QUEEN: Move current detection code into separate source file.
Changed paths:
A engines/queen/detection.cpp
engines/queen/module.mk
engines/queen/queen.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
new file mode 100644
index 0000000..678ae60
--- /dev/null
+++ b/engines/queen/detection.cpp
@@ -0,0 +1,205 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "base/plugins.h"
+
+//#include "engines/advancedDetector.h"
+#include "engines/metaengine.h"
+
+#include "common/config-manager.h"
+#include "common/file.h"
+#include "common/gui_options.h"
+#include "common/savefile.h"
+#include "common/system.h"
+#include "common/translation.h"
+
+#include "queen/queen.h"
+#include "queen/resource.h"
+
+static const PlainGameDescriptor queenGameDescriptor = {
+ "queen", "Flight of the Amazon Queen"
+};
+
+static const ExtraGuiOption queenExtraGuiOption = {
+ _s("Alternative intro"),
+ _s("Use an alternative game intro (CD version only)"),
+ "alt_intro",
+ false
+};
+
+class QueenMetaEngine : public MetaEngine {
+public:
+ virtual const char *getName() const;
+ virtual const char *getOriginalCopyright() const;
+
+ virtual bool hasFeature(MetaEngineFeature f) const;
+ virtual GameList getSupportedGames() const;
+ virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
+ virtual GameDescriptor findGame(const char *gameid) const;
+ virtual GameList detectGames(const Common::FSList &fslist) const;
+ virtual SaveStateList listSaves(const char *target) const;
+ virtual int getMaximumSaveSlot() const;
+ virtual void removeSaveState(const char *target, int slot) const;
+
+ virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
+};
+
+const char *QueenMetaEngine::getName() const {
+ return "Queen";
+}
+
+const char *QueenMetaEngine::getOriginalCopyright() const {
+ return "Flight of the Amazon Queen (C) John Passfield and Steve Stamatiadis";
+}
+
+bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
+ return
+ (f == kSupportsListSaves) ||
+ (f == kSupportsLoadingDuringStartup) ||
+ (f == kSupportsDeleteSave);
+}
+
+bool Queen::QueenEngine::hasFeature(EngineFeature f) const {
+ return
+ (f == kSupportsRTL) ||
+ (f == kSupportsLoadingDuringRuntime) ||
+ (f == kSupportsSavingDuringRuntime) ||
+ (f == kSupportsSubtitleOptions);
+}
+
+GameList QueenMetaEngine::getSupportedGames() const {
+ GameList games;
+ games.push_back(queenGameDescriptor);
+ return games;
+}
+
+int QueenMetaEngine::getMaximumSaveSlot() const { return 99; }
+
+const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &target) const {
+ Common::String guiOptions;
+ ExtraGuiOptions options;
+
+ if (target.empty()) {
+ options.push_back(queenExtraGuiOption);
+ return options;
+ }
+
+ if (ConfMan.hasKey("guioptions", target)) {
+ guiOptions = ConfMan.get("guioptions", target);
+ guiOptions = parseGameGUIOptions(guiOptions);
+ }
+
+ if (!guiOptions.contains(GUIO_NOSPEECH))
+ options.push_back(queenExtraGuiOption);
+ return options;
+}
+
+GameDescriptor QueenMetaEngine::findGame(const char *gameid) const {
+ if (0 == scumm_stricmp(gameid, queenGameDescriptor.gameid)) {
+ return queenGameDescriptor;
+ }
+ return GameDescriptor();
+}
+
+GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
+ GameList detectedGames;
+
+ // Iterate over all files in the given directory
+ for (Common::FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
+ if (file->isDirectory()) {
+ continue;
+ }
+ if (file->getName().equalsIgnoreCase("queen.1") || file->getName().equalsIgnoreCase("queen.1c")) {
+ Common::File dataFile;
+ if (!dataFile.open(*file)) {
+ continue;
+ }
+ Queen::DetectedGameVersion version;
+ if (Queen::Resource::detectVersion(&version, &dataFile)) {
+ GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, version.platform);
+ if (version.features & Queen::GF_DEMO) {
+ dg.updateDesc("Demo");
+ dg.setGUIOptions(GUIO_NOSPEECH);
+ } else if (version.features & Queen::GF_INTERVIEW) {
+ dg.updateDesc("Interview");
+ dg.setGUIOptions(GUIO_NOSPEECH);
+ } else if (version.features & Queen::GF_FLOPPY) {
+ dg.updateDesc("Floppy");
+ dg.setGUIOptions(GUIO_NOSPEECH);
+ } else if (version.features & Queen::GF_TALKIE) {
+ dg.updateDesc("Talkie");
+ }
+ detectedGames.push_back(dg);
+ break;
+ }
+ }
+ }
+ return detectedGames;
+}
+
+SaveStateList QueenMetaEngine::listSaves(const char *target) const {
+ Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
+ Common::StringArray filenames;
+ char saveDesc[32];
+ Common::String pattern("queen.s??");
+
+ filenames = saveFileMan->listSavefiles(pattern);
+ sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
+
+ SaveStateList saveList;
+ for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
+ // Obtain the last 2 digits of the filename, since they correspond to the save slot
+ int slotNum = atoi(file->c_str() + file->size() - 2);
+
+ if (slotNum >= 0 && slotNum <= 99) {
+ Common::InSaveFile *in = saveFileMan->openForLoading(*file);
+ if (in) {
+ for (int i = 0; i < 4; i++)
+ in->readUint32BE();
+ in->read(saveDesc, 32);
+ saveList.push_back(SaveStateDescriptor(slotNum, saveDesc));
+ delete in;
+ }
+ }
+ }
+
+ return saveList;
+}
+
+void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
+ Common::String filename = target;
+ filename += Common::String::format(".s%02d", slot);
+
+ g_system->getSavefileManager()->removeSavefile(filename);
+}
+
+Common::Error QueenMetaEngine::createInstance(OSystem *syst, Engine **engine) const {
+ assert(engine);
+ *engine = new Queen::QueenEngine(syst);
+ return Common::kNoError;
+}
+
+#if PLUGIN_ENABLED_DYNAMIC(QUEEN)
+ REGISTER_PLUGIN_DYNAMIC(QUEEN, PLUGIN_TYPE_ENGINE, QueenMetaEngine);
+#else
+ REGISTER_PLUGIN_STATIC(QUEEN, PLUGIN_TYPE_ENGINE, QueenMetaEngine);
+#endif
diff --git a/engines/queen/module.mk b/engines/queen/module.mk
index 5e0602c..8ba49a3 100644
--- a/engines/queen/module.mk
+++ b/engines/queen/module.mk
@@ -6,6 +6,7 @@ MODULE_OBJS := \
credits.o \
cutaway.o \
debug.o \
+ detection.o \
display.o \
graphics.o \
grid.o \
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 08fc594..3fb7f68 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -23,14 +23,12 @@
#include "base/plugins.h"
#include "common/config-manager.h"
+#include "common/events.h"
#include "common/file.h"
#include "common/fs.h"
-#include "common/gui_options.h"
#include "common/savefile.h"
#include "common/system.h"
-#include "common/events.h"
#include "common/textconsole.h"
-#include "common/translation.h"
#include "engines/util.h"
@@ -49,177 +47,6 @@
#include "queen/talk.h"
#include "queen/walk.h"
-#include "engines/metaengine.h"
-
-static const PlainGameDescriptor queenGameDescriptor = {
- "queen", "Flight of the Amazon Queen"
-};
-
-static const ExtraGuiOption queenExtraGuiOption = {
- _s("Alternative intro"),
- _s("Use an alternative game intro (CD version only)"),
- "alt_intro",
- false
-};
-
-class QueenMetaEngine : public MetaEngine {
-public:
- virtual const char *getName() const;
- virtual const char *getOriginalCopyright() const;
-
- virtual bool hasFeature(MetaEngineFeature f) const;
- virtual GameList getSupportedGames() const;
- virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
- virtual GameDescriptor findGame(const char *gameid) const;
- virtual GameList detectGames(const Common::FSList &fslist) const;
- virtual SaveStateList listSaves(const char *target) const;
- virtual int getMaximumSaveSlot() const;
- virtual void removeSaveState(const char *target, int slot) const;
-
- virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
-};
-
-const char *QueenMetaEngine::getName() const {
- return "Queen";
-}
-
-const char *QueenMetaEngine::getOriginalCopyright() const {
- return "Flight of the Amazon Queen (C) John Passfield and Steve Stamatiadis";
-}
-
-bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
- return
- (f == kSupportsListSaves) ||
- (f == kSupportsLoadingDuringStartup) ||
- (f == kSupportsDeleteSave);
-}
-
-bool Queen::QueenEngine::hasFeature(EngineFeature f) const {
- return
- (f == kSupportsRTL) ||
- (f == kSupportsLoadingDuringRuntime) ||
- (f == kSupportsSavingDuringRuntime) ||
- (f == kSupportsSubtitleOptions);
-}
-
-GameList QueenMetaEngine::getSupportedGames() const {
- GameList games;
- games.push_back(queenGameDescriptor);
- return games;
-}
-
-int QueenMetaEngine::getMaximumSaveSlot() const { return 99; }
-
-const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &target) const {
- Common::String guiOptions;
- ExtraGuiOptions options;
-
- if (target.empty()) {
- options.push_back(queenExtraGuiOption);
- return options;
- }
-
- if (ConfMan.hasKey("guioptions", target)) {
- guiOptions = ConfMan.get("guioptions", target);
- guiOptions = parseGameGUIOptions(guiOptions);
- }
-
- if (!guiOptions.contains(GUIO_NOSPEECH))
- options.push_back(queenExtraGuiOption);
- return options;
-}
-
-GameDescriptor QueenMetaEngine::findGame(const char *gameid) const {
- if (0 == scumm_stricmp(gameid, queenGameDescriptor.gameid)) {
- return queenGameDescriptor;
- }
- return GameDescriptor();
-}
-
-GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
- GameList detectedGames;
-
- // Iterate over all files in the given directory
- for (Common::FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
- if (file->isDirectory()) {
- continue;
- }
- if (file->getName().equalsIgnoreCase("queen.1") || file->getName().equalsIgnoreCase("queen.1c")) {
- Common::File dataFile;
- if (!dataFile.open(*file)) {
- continue;
- }
- Queen::DetectedGameVersion version;
- if (Queen::Resource::detectVersion(&version, &dataFile)) {
- GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, version.platform);
- if (version.features & Queen::GF_DEMO) {
- dg.updateDesc("Demo");
- dg.setGUIOptions(GUIO_NOSPEECH);
- } else if (version.features & Queen::GF_INTERVIEW) {
- dg.updateDesc("Interview");
- dg.setGUIOptions(GUIO_NOSPEECH);
- } else if (version.features & Queen::GF_FLOPPY) {
- dg.updateDesc("Floppy");
- dg.setGUIOptions(GUIO_NOSPEECH);
- } else if (version.features & Queen::GF_TALKIE) {
- dg.updateDesc("Talkie");
- }
- detectedGames.push_back(dg);
- break;
- }
- }
- }
- return detectedGames;
-}
-
-SaveStateList QueenMetaEngine::listSaves(const char *target) const {
- Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
- Common::StringArray filenames;
- char saveDesc[32];
- Common::String pattern("queen.s??");
-
- filenames = saveFileMan->listSavefiles(pattern);
- sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
-
- SaveStateList saveList;
- for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
- // Obtain the last 2 digits of the filename, since they correspond to the save slot
- int slotNum = atoi(file->c_str() + file->size() - 2);
-
- if (slotNum >= 0 && slotNum <= 99) {
- Common::InSaveFile *in = saveFileMan->openForLoading(*file);
- if (in) {
- for (int i = 0; i < 4; i++)
- in->readUint32BE();
- in->read(saveDesc, 32);
- saveList.push_back(SaveStateDescriptor(slotNum, saveDesc));
- delete in;
- }
- }
- }
-
- return saveList;
-}
-
-void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String filename = target;
- filename += Common::String::format(".s%02d", slot);
-
- g_system->getSavefileManager()->removeSavefile(filename);
-}
-
-Common::Error QueenMetaEngine::createInstance(OSystem *syst, Engine **engine) const {
- assert(engine);
- *engine = new Queen::QueenEngine(syst);
- return Common::kNoError;
-}
-
-#if PLUGIN_ENABLED_DYNAMIC(QUEEN)
- REGISTER_PLUGIN_DYNAMIC(QUEEN, PLUGIN_TYPE_ENGINE, QueenMetaEngine);
-#else
- REGISTER_PLUGIN_STATIC(QUEEN, PLUGIN_TYPE_ENGINE, QueenMetaEngine);
-#endif
-
namespace Queen {
QueenEngine::QueenEngine(OSystem *syst)
Commit: 2c0ed5e252d68020d6db6bc3b30964ebbe42f382
https://github.com/scummvm/scummvm/commit/2c0ed5e252d68020d6db6bc3b30964ebbe42f382
Author: D G Turner (digitall at scummvm.org)
Date: 2013-10-04T22:24:42-07:00
Commit Message:
QUEEN: Minor cleanup of detection code.
Changed paths:
engines/queen/detection.cpp
engines/queen/queen.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 678ae60..1886da8 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -48,8 +48,13 @@ static const ExtraGuiOption queenExtraGuiOption = {
class QueenMetaEngine : public MetaEngine {
public:
- virtual const char *getName() const;
- virtual const char *getOriginalCopyright() const;
+ virtual const char *getName() const {
+ return "Queen";
+ }
+
+ virtual const char *getOriginalCopyright() const {
+ return "Flight of the Amazon Queen (C) John Passfield and Steve Stamatiadis";
+ }
virtual bool hasFeature(MetaEngineFeature f) const;
virtual GameList getSupportedGames() const;
@@ -57,20 +62,12 @@ public:
virtual GameDescriptor findGame(const char *gameid) const;
virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const;
- virtual int getMaximumSaveSlot() const;
+ virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const;
virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
};
-const char *QueenMetaEngine::getName() const {
- return "Queen";
-}
-
-const char *QueenMetaEngine::getOriginalCopyright() const {
- return "Flight of the Amazon Queen (C) John Passfield and Steve Stamatiadis";
-}
-
bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
return
(f == kSupportsListSaves) ||
@@ -78,22 +75,12 @@ bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsDeleteSave);
}
-bool Queen::QueenEngine::hasFeature(EngineFeature f) const {
- return
- (f == kSupportsRTL) ||
- (f == kSupportsLoadingDuringRuntime) ||
- (f == kSupportsSavingDuringRuntime) ||
- (f == kSupportsSubtitleOptions);
-}
-
GameList QueenMetaEngine::getSupportedGames() const {
GameList games;
games.push_back(queenGameDescriptor);
return games;
}
-int QueenMetaEngine::getMaximumSaveSlot() const { return 99; }
-
const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &target) const {
Common::String guiOptions;
ExtraGuiOptions options;
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 3fb7f68..8d4db75 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -315,6 +315,14 @@ GUI::Debugger *QueenEngine::getDebugger() {
return _debugger;
}
+bool Queen::QueenEngine::hasFeature(EngineFeature f) const {
+ return
+ (f == kSupportsRTL) ||
+ (f == kSupportsLoadingDuringRuntime) ||
+ (f == kSupportsSavingDuringRuntime) ||
+ (f == kSupportsSubtitleOptions);
+}
+
Common::Error QueenEngine::run() {
initGraphics(GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT, false);
Commit: 54e44486b0597d8dcb7d8a327df02917dd74b29a
https://github.com/scummvm/scummvm/commit/54e44486b0597d8dcb7d8a327df02917dd74b29a
Author: D G Turner (digitall at scummvm.org)
Date: 2013-10-04T22:24:42-07:00
Commit Message:
QUEEN: Initial work to migrate to Advanced Detector.
This breaks the detection until the required checksums for each version
are added and/or the fallback detection is fixed.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 1886da8..5492942 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -22,8 +22,7 @@
#include "base/plugins.h"
-//#include "engines/advancedDetector.h"
-#include "engines/metaengine.h"
+#include "engines/advancedDetector.h"
#include "common/config-manager.h"
#include "common/file.h"
@@ -35,8 +34,17 @@
#include "queen/queen.h"
#include "queen/resource.h"
-static const PlainGameDescriptor queenGameDescriptor = {
- "queen", "Flight of the Amazon Queen"
+namespace Queen {
+
+struct QueenGameDescription {
+ ADGameDescription desc;
+};
+
+} // End of namespace Queen
+
+static const PlainGameDescriptor queenGames[] = {
+ {"queen", "Flight of the Amazon Queen"},
+ {0, 0}
};
static const ExtraGuiOption queenExtraGuiOption = {
@@ -46,8 +54,32 @@ static const ExtraGuiOption queenExtraGuiOption = {
false
};
-class QueenMetaEngine : public MetaEngine {
+namespace Queen {
+
+static const QueenGameDescription gameDescriptions[] = {
+ {
+ {
+ "queen",
+ "",
+ AD_ENTRY1s("FIXME", "FIXME", 0),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ { AD_TABLE_END_MARKER }
+};
+
+} // End of namespace Queen
+
+class QueenMetaEngine : public AdvancedMetaEngine {
public:
+ QueenMetaEngine() : AdvancedMetaEngine(Queen::gameDescriptions, sizeof(Queen::QueenGameDescription), queenGames) {
+ _singleid = "queen";
+ }
+
virtual const char *getName() const {
return "Queen";
}
@@ -57,15 +89,13 @@ public:
}
virtual bool hasFeature(MetaEngineFeature f) const;
- virtual GameList getSupportedGames() const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
- virtual GameDescriptor findGame(const char *gameid) const;
- virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const;
- virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
+ //const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const;
};
bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -75,12 +105,6 @@ bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsDeleteSave);
}
-GameList QueenMetaEngine::getSupportedGames() const {
- GameList games;
- games.push_back(queenGameDescriptor);
- return games;
-}
-
const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &target) const {
Common::String guiOptions;
ExtraGuiOptions options;
@@ -100,13 +124,7 @@ const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &
return options;
}
-GameDescriptor QueenMetaEngine::findGame(const char *gameid) const {
- if (0 == scumm_stricmp(gameid, queenGameDescriptor.gameid)) {
- return queenGameDescriptor;
- }
- return GameDescriptor();
-}
-
+/* FIXME - Migrate this code (Use as falllback):
GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
GameList detectedGames;
@@ -142,6 +160,7 @@ GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
}
return detectedGames;
}
+*/
SaveStateList QueenMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
@@ -179,10 +198,13 @@ void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(filename);
}
-Common::Error QueenMetaEngine::createInstance(OSystem *syst, Engine **engine) const {
- assert(engine);
- *engine = new Queen::QueenEngine(syst);
- return Common::kNoError;
+bool QueenMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
+ const Queen::QueenGameDescription *gd = (const Queen::QueenGameDescription *)desc;
+
+ if (gd)
+ *engine = new Queen::QueenEngine(syst); //FIXME , gd);
+
+ return (gd != 0);
}
#if PLUGIN_ENABLED_DYNAMIC(QUEEN)
Commit: 4ad17f29ba0570566b5c28b5a4ec7632e6cf2b16
https://github.com/scummvm/scummvm/commit/4ad17f29ba0570566b5c28b5a4ec7632e6cf2b16
Author: D G Turner (digitall at scummvm.org)
Date: 2013-10-04T22:24:42-07:00
Commit Message:
QUEEN: Add detection entries for Advanced Detector.
Some of the uncompressed language variant entries are missing
currently.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 5492942..9496f4f 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -57,12 +57,188 @@ static const ExtraGuiOption queenExtraGuiOption = {
namespace Queen {
static const QueenGameDescription gameDescriptions[] = {
+ // Amiga Demo - English
{
{
"queen",
- "",
- AD_ENTRY1s("FIXME", "FIXME", 0),
+ "Demo",
+ AD_ENTRY1s("queen.1", "f7a1a37ac93bf763b1569231237cb4d8", 563335),
Common::EN_ANY,
+ Common::kPlatformAmiga,
+ ADGF_DEMO,
+ GUIO0()
+ },
+ },
+
+ // Amiga Interview Demo - English
+ {
+ {
+ "queen",
+ "Interview",
+ AD_ENTRY1s("queen.1", "f5d42a18d8f5689480413871410663d7", 597032),
+ Common::EN_ANY,
+ Common::kPlatformAmiga,
+ ADGF_DEMO,
+ GUIO0()
+ },
+ },
+
+ // DOS Demo - English
+ {
+ {
+ "queen",
+ "Demo",
+ AD_ENTRY1s("queen.1", "f39334d8133840aa3bcbd733c12937cf", 3732177),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_DEMO,
+ GUIO0()
+ },
+ },
+
+ // DOS Interview Demo - English
+ {
+ {
+ "queen",
+ "Interview",
+ AD_ENTRY1s("queen.1", "30b3291f37665bf24d9482b183cb2f67", 1915913),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_DEMO,
+ GUIO0()
+ },
+ },
+
+ // PCGAMES DOS Demo - English
+ {
+ {
+ "queen",
+ "Demo",
+ AD_ENTRY1s("queen.1", "f39334d8133840aa3bcbd733c12937cf", 3724538),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_DEMO,
+ GUIO0()
+ },
+ },
+
+ // DOS Floppy - English
+ {
+ {
+ "queen",
+ "Floppy",
+ AD_ENTRY1s("queen.1", "f5e827645d3c887be3bdf4729d847756", 22677657),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - English
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "b6302bccf70463de3d5faf0f0628f742", 190787021),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // TODO: Need Entry for Uncompressed French Release.
+
+ // TODO: Need Entry for Uncompressed German Release.
+
+ // TODO: Need Entry for Uncompressed Hebrew Release.
+
+ // DOS CD - Italian
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "b6302bccf70463de3d5faf0f0628f742", 190795582),
+ Common::IT_ITA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - English (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "a0749bb8b72e537ead1a63a3dde1443d", 54108887),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - English (Compressed Freeware Release v1.1)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "21fd690b372f8a6289f6f33bc986276c", 51222412),
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - French (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "67e3020f8a35e1df7b1c753b5aaa71e1", 97382620),
+ Common::FR_FRA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - German (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "28f78dbec7e20f603a10c2f8ea889a5c", 108738717),
+ Common::DE_DEU,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - Hebrew (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "4d52d8780613ef27a2b779caecb20a21", 99391805),
+ Common::HE_ISR,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - Italian (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", "2f72b715ed753cf905a37cdcc7ea611e", 98327801),
+ Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
Commit: 5dca63221da0a9de079ee948598ff67dacffbf5d
https://github.com/scummvm/scummvm/commit/5dca63221da0a9de079ee948598ff67dacffbf5d
Author: D G Turner (digitall at scummvm.org)
Date: 2013-12-09T17:17:19-08:00
Commit Message:
QUEEN: Add further detection entries for Advanced Detector.
These are based on queen.1 file lengths from qtable devtool.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 9496f4f..f8cecf9 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -122,6 +122,19 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+ // Amiga Floppy - English
+ {
+ {
+ "queen",
+ "Floppy",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 351775), // TODO: Fill in correct MD5
+ Common::EN_ANY,
+ Common::kPlatformAmiga,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
// DOS Floppy - English
{
{
@@ -148,11 +161,83 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
- // TODO: Need Entry for Uncompressed French Release.
+ // DOS Floppy - French
+ {
+ {
+ "queen",
+ "Floppy",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22157304), // TODO: Fill in correct MD5
+ Common::FR_FRA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - French
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 186689095), // TODO: Fill in correct MD5
+ Common::FR_FRA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS Floppy - German
+ {
+ {
+ "queen",
+ "Floppy",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22240013), // TODO: Fill in correct MD5
+ Common::DE_DEU,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+ // DOS CD - German
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 217648975), // TODO: Fill in correct MD5
+ Common::DE_DEU,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
- // TODO: Need Entry for Uncompressed German Release.
+ // DOS CD - Hebrew
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 190705558), // TODO: Fill in correct MD5
+ Common::HE_ISR,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
- // TODO: Need Entry for Uncompressed Hebrew Release.
+ // DOS Floppy - Italian
+ {
+ {
+ "queen",
+ "Floppy",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22461366), // TODO: Fill in correct MD5
+ Common::IT_ITA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
// DOS CD - Italian
{
@@ -167,6 +252,20 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+ // DOS CD - Spanish
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 190730602), // TODO: Fill in correct MD5
+ Common::ES_ESP,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+
+
// DOS CD - English (Compressed Freeware Release v1.0)
{
{
@@ -245,6 +344,8 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+ // TODO: Freeware Release for Spanish DOS CD is missing.
+
{ AD_TABLE_END_MARKER }
};
Commit: 6db7b81d5c8270fda6d65e71401ef571367617dd
https://github.com/scummvm/scummvm/commit/6db7b81d5c8270fda6d65e71401ef571367617dd
Author: D G Turner (digitall at scummvm.org)
Date: 2013-12-09T18:04:25-08:00
Commit Message:
QUEEN: Restore previous detection code as fallback detector.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index f8cecf9..e56efd5 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -372,7 +372,7 @@ public:
virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const;
- //const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const;
+ const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const;
};
bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -401,9 +401,8 @@ const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &
return options;
}
-/* FIXME - Migrate this code (Use as falllback):
-GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
- GameList detectedGames;
+const ADGameDescription *QueenMetaEngine::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const {
+ static ADGameDescription desc;
// Iterate over all files in the given directory
for (Common::FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
@@ -417,27 +416,31 @@ GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {
}
Queen::DetectedGameVersion version;
if (Queen::Resource::detectVersion(&version, &dataFile)) {
- GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, version.platform);
+ desc.gameid = "queen";
+ desc.language = version.language;
+ desc.platform = version.platform;
+ desc.flags = ADGF_NO_FLAGS;
+ desc.guioptions = GUIO0();
if (version.features & Queen::GF_DEMO) {
- dg.updateDesc("Demo");
- dg.setGUIOptions(GUIO_NOSPEECH);
+ desc.extra = "Demo";
+ desc.flags = ADGF_DEMO;
+ desc.guioptions = GUIO_NOSPEECH;
} else if (version.features & Queen::GF_INTERVIEW) {
- dg.updateDesc("Interview");
- dg.setGUIOptions(GUIO_NOSPEECH);
+ desc.extra = "Interview";
+ desc.flags = ADGF_DEMO;
+ desc.guioptions = GUIO_NOSPEECH;
} else if (version.features & Queen::GF_FLOPPY) {
- dg.updateDesc("Floppy");
- dg.setGUIOptions(GUIO_NOSPEECH);
+ desc.extra = "Floppy";
+ desc.guioptions = GUIO_NOSPEECH;
} else if (version.features & Queen::GF_TALKIE) {
- dg.updateDesc("Talkie");
+ desc.extra = "Talkie";
}
- detectedGames.push_back(dg);
- break;
+ return (const ADGameDescription *)&desc;
}
}
}
- return detectedGames;
+ return 0;
}
-*/
SaveStateList QueenMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
Commit: be9833a43fe28b743bdbd5f75e7de5cc789e9e4f
https://github.com/scummvm/scummvm/commit/be9833a43fe28b743bdbd5f75e7de5cc789e9e4f
Author: D G Turner (digitall at scummvm.org)
Date: 2014-01-14T15:07:54-08:00
Commit Message:
QUEEN: Switch unknown md5sums in detection entries for NULL.
This tells the advanced detector to skip MD5 validation for this
detection entry, so only filename and size are used as per the
original detection code.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index e56efd5..d2141b8 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -127,7 +127,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Floppy",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 351775), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 351775), // TODO: Fill in correct MD5
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
@@ -166,7 +166,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Floppy",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22157304), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 22157304), // TODO: Fill in correct MD5
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -179,7 +179,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Talkie",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 186689095), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 186689095), // TODO: Fill in correct MD5
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -192,7 +192,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Floppy",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22240013), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 22240013), // TODO: Fill in correct MD5
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -205,7 +205,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Talkie",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 217648975), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 217648975), // TODO: Fill in correct MD5
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -218,7 +218,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Talkie",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 190705558), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 190705558), // TODO: Fill in correct MD5
Common::HE_ISR,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -231,7 +231,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Floppy",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 22461366), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 22461366), // TODO: Fill in correct MD5
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -257,7 +257,7 @@ static const QueenGameDescription gameDescriptions[] = {
{
"queen",
"Talkie",
- AD_ENTRY1s("queen.1", "00000000000000000000000000000000", 190730602), // TODO: Fill in correct MD5
+ AD_ENTRY1s("queen.1", NULL, 190730602), // TODO: Fill in correct MD5
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
Commit: 6814ce68bf67094b74619a55d6c132b1791062bd
https://github.com/scummvm/scummvm/commit/6814ce68bf67094b74619a55d6c132b1791062bd
Author: D G Turner (digitall at scummvm.org)
Date: 2014-01-14T15:11:20-08:00
Commit Message:
QUEEN: Disable detection entries with unknown MD5sums.
This forces detection of the entries with missing MD5sums via the
fallback detector. This triggers will then trigger a warning
with the associated md5sum for the user to report to the team.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index d2141b8..3586edb 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -122,6 +122,7 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+#if 0
// Amiga Floppy - English
{
{
@@ -134,6 +135,7 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
// DOS Floppy - English
{
@@ -161,6 +163,7 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+#if 0
// DOS Floppy - French
{
{
@@ -173,7 +176,9 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
+#if 0
// DOS CD - French
{
{
@@ -186,7 +191,9 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
+#if 0
// DOS Floppy - German
{
{
@@ -199,7 +206,9 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
+#if 0
// DOS CD - German
{
{
@@ -212,7 +221,9 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
+#if 0
// DOS CD - Hebrew
{
{
@@ -225,7 +236,9 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
+#if 0
// DOS Floppy - Italian
{
{
@@ -238,6 +251,7 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
+#endif
// DOS CD - Italian
{
@@ -252,6 +266,7 @@ static const QueenGameDescription gameDescriptions[] = {
},
},
+#if 0
// DOS CD - Spanish
{
{
@@ -264,7 +279,7 @@ static const QueenGameDescription gameDescriptions[] = {
GUIO0()
},
},
-
+#endif
// DOS CD - English (Compressed Freeware Release v1.0)
{
Commit: 7382fe0ba2e00b5b42f25cc6345043c659645048
https://github.com/scummvm/scummvm/commit/7382fe0ba2e00b5b42f25cc6345043c659645048
Author: D G Turner (digitall at scummvm.org)
Date: 2014-01-19T17:59:32-08:00
Commit Message:
QUEEN: Fix missing GUIO_NOSPEECH flag on Demo and Floppy AD entries.
Also, add missing Spanish DOS CD entry in skeleton form.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 3586edb..99f3996 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -66,7 +66,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_DEMO,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -79,7 +79,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_DEMO,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -92,7 +92,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_DEMO,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -105,7 +105,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_DEMO,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -118,7 +118,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_DEMO,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -132,7 +132,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
#endif
@@ -146,7 +146,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
@@ -173,7 +173,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
#endif
@@ -203,7 +203,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
#endif
@@ -248,7 +248,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GUIO_NOSPEECH)
},
},
#endif
@@ -360,6 +360,20 @@ static const QueenGameDescription gameDescriptions[] = {
},
// TODO: Freeware Release for Spanish DOS CD is missing.
+#if 0
+ // DOS CD - Spanish (Compressed Freeware Release v1.0)
+ {
+ {
+ "queen",
+ "Talkie",
+ AD_ENTRY1s("queen.1c", NULL, ?),
+ Common::ES_ESP,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+ },
+#endif
{ AD_TABLE_END_MARKER }
};
Commit: d1b7fd9b87caa51d8bc770e55ae022593247b49a
https://github.com/scummvm/scummvm/commit/d1b7fd9b87caa51d8bc770e55ae022593247b49a
Author: D G Turner (digitall at scummvm.org)
Date: 2014-01-21T03:39:28-08:00
Commit Message:
QUEEN: Migrate listSaves() function to game target for save naming.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 99f3996..24df992 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -475,7 +475,7 @@ SaveStateList QueenMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
Common::StringArray filenames;
char saveDesc[32];
- Common::String pattern("queen.s??");
+ Common::String pattern = target + ".s??";
filenames = saveFileMan->listSavefiles(pattern);
sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
Commit: 7d4c625c4ec28d68520550ff4277a28917616269
https://github.com/scummvm/scummvm/commit/7d4c625c4ec28d68520550ff4277a28917616269
Author: D G Turner (digitall at scummvm.org)
Date: 2014-02-10T06:59:44-08:00
Commit Message:
QUEEN: Switch all savegame usage back to "queen.sXX" format.
The target is not just a bare "queen", but is postfixed by language
variant (and CD if used).
Using this for the savegame naming would be good as it allows several
language variants to have different co-existing savegame sets without
causing conflicts. However, if the savegame format is the same across
all language variants, then using the same naming allows easier
switching between languages if testing.
Currently the queen engine uses a single set of savegames named in the
format "queen.sXX" which are used for all languages, as the format
appears to be compatible across language variants. This may require
changing in future, if a variant with incompatible savegame format
is discovered.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index 24df992..e79da0a 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -475,7 +475,7 @@ SaveStateList QueenMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
Common::StringArray filenames;
char saveDesc[32];
- Common::String pattern = target + ".s??";
+ Common::String pattern("queen.s??");
filenames = saveFileMan->listSavefiles(pattern);
sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
@@ -501,8 +501,7 @@ SaveStateList QueenMetaEngine::listSaves(const char *target) const {
}
void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String filename = target;
- filename += Common::String::format(".s%02d", slot);
+ Common::String filename = Common::String::format("queen.s%02d", slot);
g_system->getSavefileManager()->removeSavefile(filename);
}
Commit: 1348b82aaadc37339aa7344111f7bf0ef7663c1e
https://github.com/scummvm/scummvm/commit/1348b82aaadc37339aa7344111f7bf0ef7663c1e
Author: D G Turner (digitall at scummvm.org)
Date: 2014-02-10T07:02:36-08:00
Commit Message:
QUEEN: Migrate extra gui options to AdvancedMetaEngine handling.
Changed paths:
engines/queen/detection.cpp
diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp
index e79da0a..57b314c 100644
--- a/engines/queen/detection.cpp
+++ b/engines/queen/detection.cpp
@@ -47,11 +47,20 @@ static const PlainGameDescriptor queenGames[] = {
{0, 0}
};
-static const ExtraGuiOption queenExtraGuiOption = {
- _s("Alternative intro"),
- _s("Use an alternative game intro (CD version only)"),
- "alt_intro",
- false
+#define GAMEOPTION_ALT_INTRO GUIO_GAMEOPTIONS1
+
+static const ADExtraGuiOptionsMap optionsList[] = {
+ {
+ GAMEOPTION_ALT_INTRO,
+ {
+ _s("Alternative intro"),
+ _s("Use an alternative game intro (CD version only)"),
+ "alt_intro",
+ false
+ }
+ },
+
+ AD_EXTRA_GUI_OPTIONS_TERMINATOR
};
namespace Queen {
@@ -159,7 +168,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -188,7 +197,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
#endif
@@ -218,7 +227,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
#endif
@@ -233,7 +242,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::HE_ISR,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
#endif
@@ -262,7 +271,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -276,7 +285,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
#endif
@@ -290,7 +299,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -303,7 +312,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -316,7 +325,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -329,7 +338,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -342,7 +351,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::HE_ISR,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -355,7 +364,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
@@ -370,7 +379,7 @@ static const QueenGameDescription gameDescriptions[] = {
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO0()
+ GUIO1(GAMEOPTION_ALT_INTRO)
},
},
#endif
@@ -382,7 +391,7 @@ static const QueenGameDescription gameDescriptions[] = {
class QueenMetaEngine : public AdvancedMetaEngine {
public:
- QueenMetaEngine() : AdvancedMetaEngine(Queen::gameDescriptions, sizeof(Queen::QueenGameDescription), queenGames) {
+ QueenMetaEngine() : AdvancedMetaEngine(Queen::gameDescriptions, sizeof(Queen::QueenGameDescription), queenGames, optionsList) {
_singleid = "queen";
}
@@ -396,7 +405,6 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
- virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const;
@@ -411,25 +419,6 @@ bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsDeleteSave);
}
-const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &target) const {
- Common::String guiOptions;
- ExtraGuiOptions options;
-
- if (target.empty()) {
- options.push_back(queenExtraGuiOption);
- return options;
- }
-
- if (ConfMan.hasKey("guioptions", target)) {
- guiOptions = ConfMan.get("guioptions", target);
- guiOptions = parseGameGUIOptions(guiOptions);
- }
-
- if (!guiOptions.contains(GUIO_NOSPEECH))
- options.push_back(queenExtraGuiOption);
- return options;
-}
-
const ADGameDescription *QueenMetaEngine::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const {
static ADGameDescription desc;
@@ -463,6 +452,7 @@ const ADGameDescription *QueenMetaEngine::fallbackDetect(const FileMap &allFiles
desc.guioptions = GUIO_NOSPEECH;
} else if (version.features & Queen::GF_TALKIE) {
desc.extra = "Talkie";
+ desc.guioptions = GAMEOPTION_ALT_INTRO;
}
return (const ADGameDescription *)&desc;
}
Commit: ae16c989ae54dc9ca4440bd160952826cb624857
https://github.com/scummvm/scummvm/commit/ae16c989ae54dc9ca4440bd160952826cb624857
Author: David Turner (dgturner at iee.org)
Date: 2014-02-10T07:05:20-08:00
Commit Message:
Merge pull request #407 from digitall/advancedDetector_queen
Migration of Queen Engine to Advanced Detector
Changed paths:
A engines/queen/detection.cpp
engines/queen/module.mk
engines/queen/queen.cpp
More information about the Scummvm-git-logs
mailing list