aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mortevielle/detection.cpp')
-rw-r--r--engines/mortevielle/detection.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/engines/mortevielle/detection.cpp b/engines/mortevielle/detection.cpp
index 28cbc77b8b..ee9cb40c99 100644
--- a/engines/mortevielle/detection.cpp
+++ b/engines/mortevielle/detection.cpp
@@ -24,13 +24,22 @@
#include "engines/advancedDetector.h"
#include "mortevielle/mortevielle.h"
-#include "mortevielle/detection_tables.h"
#include "mortevielle/saveload.h"
namespace Mortevielle {
-uint32 MortevielleEngine::getGameFlags() const { return _gameDescription->flags; }
+struct MortevielleGameDescription {
+ ADGameDescription desc;
+ Common::Language originalLanguage;
+ uint8 dataFeature;
+};
+
+uint32 MortevielleEngine::getGameFlags() const { return _gameDescription->desc.flags; }
+
+Common::Language MortevielleEngine::getLanguage() const { return _gameDescription->desc.language; }
-Common::Language MortevielleEngine::getLanguage() const { return _gameDescription->language; }
+Common::Language MortevielleEngine::getOriginalLanguage() const { return _gameDescription->originalLanguage; }
+
+bool MortevielleEngine::useOriginalData() const { return _gameDescription->dataFeature == kUseOriginalData; }
}
@@ -39,12 +48,17 @@ static const PlainGameDescriptor MortevielleGame[] = {
{0, 0}
};
+#include "mortevielle/detection_tables.h"
+
class MortevielleMetaEngine : public AdvancedMetaEngine {
public:
- MortevielleMetaEngine() : AdvancedMetaEngine(Mortevielle::MortevielleGameDescriptions, sizeof(ADGameDescription),
+ MortevielleMetaEngine() : AdvancedMetaEngine(Mortevielle::MortevielleGameDescriptions, sizeof(Mortevielle::MortevielleGameDescription),
MortevielleGame) {
_md5Bytes = 512;
_singleid = "mortevielle";
+ // Use kADFlagUseExtraAsHint to distinguish between original and improved versions
+ // (i.e. use or not of the game data file).
+ _flags = kADFlagUseExtraAsHint;
}
virtual const char *getName() const {
return "Mortevielle";
@@ -63,7 +77,7 @@ public:
bool MortevielleMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
if (desc) {
- *engine = new Mortevielle::MortevielleEngine(syst, desc);
+ *engine = new Mortevielle::MortevielleEngine(syst, (const Mortevielle::MortevielleGameDescription *)desc);
}
return desc != 0;
}