[Scummvm-cvs-logs] scummvm master -> 0d1772b95d35a88f18977aeda5149c98cf619a0c

Strangerke Strangerke at scummvm.org
Tue Aug 13 08:35:49 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0d1772b95d MORTEVIELLE: Introduce original language in detection


Commit: 0d1772b95d35a88f18977aeda5149c98cf619a0c
    https://github.com/scummvm/scummvm/commit/0d1772b95d35a88f18977aeda5149c98cf619a0c
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-08-12T23:34:36-07:00

Commit Message:
MORTEVIELLE: Introduce original language in detection

Changed paths:
    engines/mortevielle/detection.cpp
    engines/mortevielle/detection_tables.h
    engines/mortevielle/mortevielle.cpp
    engines/mortevielle/mortevielle.h



diff --git a/engines/mortevielle/detection.cpp b/engines/mortevielle/detection.cpp
index 28cbc77..7d0f3c4 100644
--- a/engines/mortevielle/detection.cpp
+++ b/engines/mortevielle/detection.cpp
@@ -24,13 +24,17 @@
 #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;
+};
+
+uint32 MortevielleEngine::getGameFlags() const { return _gameDescription->desc.flags; }
 
-Common::Language MortevielleEngine::getLanguage() const { return _gameDescription->language; }
+Common::Language MortevielleEngine::getLanguage() const { return _gameDescription->desc.language; }
 
 }
 
@@ -39,9 +43,11 @@ 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";
@@ -63,7 +69,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;
 }
diff --git a/engines/mortevielle/detection_tables.h b/engines/mortevielle/detection_tables.h
index 5d59a48..9bb5fbe 100644
--- a/engines/mortevielle/detection_tables.h
+++ b/engines/mortevielle/detection_tables.h
@@ -22,53 +22,78 @@
 
 namespace Mortevielle {
 
-static const ADGameDescription MortevielleGameDescriptions[] = {
+static const MortevielleGameDescription MortevielleGameDescriptions[] = {
 	// French
 	{
-		"mortevielle",
-		"",
 		{
-			{"menufr.mor", 0, "e413f36b9e14eef16130adc347a9391f", 144},
-			{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
-			AD_LISTEND
-		},
-		Common::FR_FRA,
-		Common::kPlatformDOS,
-		ADGF_NO_FLAGS,
-		GUIO0()
+			"mortevielle",
+			"",
+			{
+				{"menufr.mor", 0, "e413f36b9e14eef16130adc347a9391f", 144},
+				{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
+				AD_LISTEND
+			},
+			Common::FR_FRA,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		}, Common::FR_FRA
 	},
 	// German
 	{
-		"mortevielle",
-		"",
 		{
-			{"menual.mor", 0, "792aea282b07a1d74c4a4abeabc90c19", 144},
-			{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
-			AD_LISTEND
-		},
-		Common::DE_DEU,
-		Common::kPlatformDOS,
-		ADGF_NO_FLAGS,
-		GUIO0()
+			"mortevielle",
+			"",
+			{
+				{"menual.mor", 0, "792aea282b07a1d74c4a4abeabc90c19", 144},
+				{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
+				AD_LISTEND
+			},
+			Common::DE_DEU,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		}, Common::DE_DEU
 	},
 
-	// English. Note that this is technically the French version, but English strings in mort.dat
-	// will automatically replace all the French strings
+	// DOS English version doesn't exist. Technically, they are French or German versions,
+	// using English strings stored mort.dat
+	
+	// English on top of French version
 	{
-		"mortevielle",
-		"",
 		{
-			{"menufr.mor", 0, "e413f36b9e14eef16130adc347a9391f", 144},
-			{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformDOS,
-		ADGF_NO_FLAGS,
-		GUIO0()
+			"mortevielle",
+				"",
+			{
+				{"menufr.mor", 0, "e413f36b9e14eef16130adc347a9391f", 144},
+				{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		}, Common::FR_FRA
 	},
 
-	AD_TABLE_END_MARKER
+	// English on top of German version
+	{
+		{
+			"mortevielle",
+				"",
+			{
+				{"menual.mor", 0, "792aea282b07a1d74c4a4abeabc90c19", 144},
+				{"dxx.mor", 0, "949e68e829ecd5ad29e36a00347a9e7e", 207744},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		}, Common::DE_DEU
+	},
+
+	{ AD_TABLE_END_MARKER , Common::EN_ANY}
 };
 
 } // End of namespace Mortevielle
diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp
index 0b6b82c..d657bda 100644
--- a/engines/mortevielle/mortevielle.cpp
+++ b/engines/mortevielle/mortevielle.cpp
@@ -46,7 +46,7 @@ namespace Mortevielle {
 
 MortevielleEngine *g_vm;
 
-MortevielleEngine::MortevielleEngine(OSystem *system, const ADGameDescription *gameDesc):
+MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescription *gameDesc):
 		Engine(system), _gameDescription(gameDesc), _randomSource("mortevielle"),
 		_soundManager(_mixer) {
 	g_vm = this;
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h
index 699ee3f..820046b 100644
--- a/engines/mortevielle/mortevielle.h
+++ b/engines/mortevielle/mortevielle.h
@@ -169,9 +169,11 @@ struct Hint {
 	byte _point;
 };
 
+struct MortevielleGameDescription;
+
 class MortevielleEngine : public Engine {
 private:
-	const ADGameDescription *_gameDescription;
+	const MortevielleGameDescription *_gameDescription;
 	Common::Stack<int> _keypresses;
 	uint32 _lastGameFrame;
 	Common::Point _mousePos;
@@ -449,7 +451,7 @@ public:
 	TextHandler _text;
 	DialogManager _dialogManager;
 
-	MortevielleEngine(OSystem *system, const ADGameDescription *gameDesc);
+	MortevielleEngine(OSystem *system, const MortevielleGameDescription *gameDesc);
 	~MortevielleEngine();
 	virtual bool hasFeature(EngineFeature f) const;
 	virtual bool canLoadGameStateCurrently();






More information about the Scummvm-git-logs mailing list