aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/detection.cpp')
-rw-r--r--engines/scumm/detection.cpp39
1 files changed, 31 insertions, 8 deletions
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp
index 9264a6443b..cd2055e017 100644
--- a/engines/scumm/detection.cpp
+++ b/engines/scumm/detection.cpp
@@ -29,6 +29,7 @@
#include "common/md5.h"
#include "common/savefile.h"
#include "common/system.h"
+#include "common/translation.h"
#include "audio/mididrv.h"
@@ -185,6 +186,11 @@ Common::String ScummEngine_v70he::generateFilename(const int room) const {
}
if (_filenamePattern.genMethod == kGenHEPC || _filenamePattern.genMethod == kGenHEIOS) {
+ if (id == '3' && _game.id == GID_MOONBASE) {
+ result = Common::String::format("%s.u32", _filenamePattern.pattern);
+ break;
+ }
+
// For HE >= 98, we already called snprintf above.
if (_game.heversion < 98 || room < 0)
result = Common::String::format("%s.he%c", _filenamePattern.pattern, id);
@@ -957,6 +963,7 @@ public:
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
+ virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
};
bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -967,7 +974,8 @@ bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSavesSupportMetaInfo) ||
(f == kSavesSupportThumbnail) ||
(f == kSavesSupportCreationDate) ||
- (f == kSavesSupportPlayTime);
+ (f == kSavesSupportPlayTime) ||
+ (f == kSimpleSavesNames);
}
bool ScummEngine::hasFeature(EngineFeature f) const {
@@ -1109,14 +1117,14 @@ Common::Error ScummMetaEngine::createInstance(OSystem *syst, Engine **engine) co
if (!findInMD5Table(res.md5.c_str())) {
Common::String md5Warning;
- md5Warning = "Your game version appears to be unknown. If this is *NOT* a fan-modified\n";
- md5Warning += "version (in particular, not a fan-made translation), please, report the\n";
- md5Warning += "following data to the ScummVM team along with name of the game you tried\n";
- md5Warning += "to add and its version/language/etc.:\n";
+ md5Warning = _("Your game version appears to be unknown. If this is *NOT* a fan-modified\n"
+ "version (in particular, not a fan-made translation), please, report the\n"
+ "following data to the ScummVM team along with the name of the game you tried\n"
+ "to add and its version, language, etc.:\n");
md5Warning += Common::String::format(" SCUMM gameid '%s', file '%s', MD5 '%s'\n\n",
res.game.gameid,
- generateFilenameForDetection(res.fp.pattern, res.fp.genMethod, Common::kPlatformUnknown).c_str(),
+ generateFilenameForDetection(res.fp.pattern, res.fp.genMethod, res.game.platform).c_str(),
res.md5.c_str());
g_system->logMessage(LogMessageType::kWarning, md5Warning.c_str());
@@ -1127,8 +1135,8 @@ Common::Error ScummMetaEngine::createInstance(OSystem *syst, Engine **engine) co
// We don't support the "Lite" version off puttzoo iOS because it contains
// the full game.
if (!strcmp(res.game.gameid, "puttzoo") && !strcmp(res.extra, "Lite")) {
- GUIErrorMessage("The Lite version of Putt-Putt Saves the Zoo iOS is not supported to avoid piracy.\n"
- "The full version is available for purchase from the iTunes Store.");
+ GUIErrorMessage(_("The Lite version of Putt-Putt Saves the Zoo iOS is not supported to avoid piracy.\n"
+ "The full version is available for purchase from the iTunes Store."));
return Common::kUnsupportedGameidError;
}
@@ -1329,6 +1337,21 @@ SaveStateDescriptor ScummMetaEngine::querySaveMetaInfos(const char *target, int
return desc;
}
+static const ExtraGuiOption comiObjectLabelsOption = {
+ _s("Show Object Line"),
+ _s("Show the names of objects at the bottom of the screen"),
+ "object_labels",
+ true
+};
+
+const ExtraGuiOptions ScummMetaEngine::getExtraGuiOptions(const Common::String &target) const {
+ ExtraGuiOptions options;
+ if (target.empty() || ConfMan.get("gameid", target) == "comi") {
+ options.push_back(comiObjectLabelsOption);
+ }
+ return options;
+}
+
#if PLUGIN_ENABLED_DYNAMIC(SCUMM)
REGISTER_PLUGIN_DYNAMIC(SCUMM, PLUGIN_TYPE_ENGINE, ScummMetaEngine);
#else