diff options
Diffstat (limited to 'engines/neverhood/detection.cpp')
-rw-r--r-- | engines/neverhood/detection.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/engines/neverhood/detection.cpp b/engines/neverhood/detection.cpp index 5f860f8519..e5486bbcf5 100644 --- a/engines/neverhood/detection.cpp +++ b/engines/neverhood/detection.cpp @@ -24,6 +24,7 @@ #include "engines/advancedDetector.h" #include "common/file.h" +#include "common/translation.h" #include "neverhood/neverhood.h" @@ -51,6 +52,10 @@ Common::Platform NeverhoodEngine::getPlatform() const { return _gameDescription->desc.platform; } +Common::Language NeverhoodEngine::getLanguage() const { + return _gameDescription->desc.language; +} + uint16 NeverhoodEngine::getVersion() const { return _gameDescription->version; } @@ -59,6 +64,10 @@ bool NeverhoodEngine::isDemo() const { return _gameDescription->desc.flags & ADGF_DEMO; } +bool NeverhoodEngine::applyResourceFixes() const { + return getLanguage() == Common::RU_RUS; +} + } static const PlainGameDescriptor neverhoodGames[] = { @@ -143,6 +152,20 @@ static const NeverhoodGameDescription gameDescriptions[] = { } // End of namespace Neverhood +static const ExtraGuiOption neverhoodExtraGuiOption1 = { + _s("Use original save/load screens"), + _s("Use the original save/load screens, instead of the ScummVM ones"), + "originalsaveload", + false +}; + +static const ExtraGuiOption neverhoodExtraGuiOption2 = { + _s("Skip the Hall of Records storyboard scenes"), + _s("Allows the player to skip past the Hall of Records storyboard scenes"), + "skiphallofrecordsscenes", + false +}; + class NeverhoodMetaEngine : public AdvancedMetaEngine { public: NeverhoodMetaEngine() : AdvancedMetaEngine(Neverhood::gameDescriptions, sizeof(Neverhood::NeverhoodGameDescription), neverhoodGames) { @@ -160,7 +183,7 @@ 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; SaveStateList listSaves(const char *target) const; virtual int getMaximumSaveSlot() const; void removeSaveState(const char *target, int slot) const; @@ -173,7 +196,7 @@ bool NeverhoodMetaEngine::hasFeature(MetaEngineFeature f) const { (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || (f == kSupportsDeleteSave) || - (f == kSavesSupportMetaInfo) || + (f == kSavesSupportMetaInfo) || (f == kSavesSupportThumbnail) || (f == kSavesSupportCreationDate) || (f == kSavesSupportPlayTime); @@ -194,6 +217,13 @@ bool NeverhoodMetaEngine::createInstance(OSystem *syst, Engine **engine, const A return gd != 0; } +const ExtraGuiOptions NeverhoodMetaEngine::getExtraGuiOptions(const Common::String &target) const { + ExtraGuiOptions options; + options.push_back(neverhoodExtraGuiOption1); + options.push_back(neverhoodExtraGuiOption2); + return options; +} + SaveStateList NeverhoodMetaEngine::listSaves(const char *target) const { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Neverhood::NeverhoodEngine::SaveHeader header; |