[Scummvm-git-logs] scummvm master -> 801b3c0c06ea93857e1c00257a1d16c375250120

elasota noreply at scummvm.org
Sat Jun 18 22:51:07 UTC 2022


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:
801b3c0c06 MTROPOLIS: Only load Obsidian word game data on English version


Commit: 801b3c0c06ea93857e1c00257a1d16c375250120
    https://github.com/scummvm/scummvm/commit/801b3c0c06ea93857e1c00257a1d16c375250120
Author: elasota (ejlasota at gmail.com)
Date: 2022-06-18T18:50:18-04:00

Commit Message:
MTROPOLIS: Only load Obsidian word game data on English version

Changed paths:
    engines/mtropolis/detection_tables.h
    engines/mtropolis/mtropolis.cpp


diff --git a/engines/mtropolis/detection_tables.h b/engines/mtropolis/detection_tables.h
index 56c194cfdc9..0dd6d143808 100644
--- a/engines/mtropolis/detection_tables.h
+++ b/engines/mtropolis/detection_tables.h
@@ -89,7 +89,6 @@ static const MTropolisGameDescription gameDescriptions[] = {
 			{
 				{ "Obsidian.exe", 0, "0b50a779136ae6c9cc8bcfa3148c1127", 762368 },
 				{ "Obsidian.c95", 0, "fea68ff30ff319cdab30b79d2850a480", 145920 },
-				{ "RSGKit.r95", 0, "071dc9098f9610fcec45c96342b1b69a", 625152 },
 				{ "MCURSORS.C95", 0, "dcbe480913eebf233d0cdc33809bf048", 87040 },
 				{ "Obsidian Data 1.MPL", 0, "f96fc3a3a0a645009265c74c5fcb2c6a", 18972392 },
 				{ "Obsidian Data 2.MPX", 0, "b42a5a7bc36b2de2f9882e8a05435857", 559682181 },
diff --git a/engines/mtropolis/mtropolis.cpp b/engines/mtropolis/mtropolis.cpp
index b12da8c8ebc..b249e1fdf7e 100644
--- a/engines/mtropolis/mtropolis.cpp
+++ b/engines/mtropolis/mtropolis.cpp
@@ -171,7 +171,7 @@ struct MacObsidianResources : public ProjectResources {
 	MacObsidianResources();
 	~MacObsidianResources();
 
-	void setup();
+	void setup(bool haveWordGames);
 	Common::SeekableReadStream *getSegmentStream(int index) const;
 	const Common::SharedPtr<CursorGraphicCollection> &getCursorGraphics() const;
 	const Common::SharedPtr<Obsidian::WordGameData> &getWordGameData() const;
@@ -195,7 +195,7 @@ MacObsidianResources::MacObsidianResources() : _installerArchive(nullptr), _inst
 	_cursorGraphics.reset(new CursorGraphicCollection());
 }
 
-void MacObsidianResources::setup() {
+void MacObsidianResources::setup(bool haveWordGames) {
 	debug(1, "Opening Obsidian Mac installer package...");
 
 	if (!_installerResMan.open("Obsidian Installer"))
@@ -242,47 +242,49 @@ void MacObsidianResources::setup() {
 			error("Failed to read cursor resources from file '%s'", fileName);
 	}
 
-	debug(1, "Loading word games...");
+	if (haveWordGames) {
+		debug(1, "Loading word games...");
 
-	{
-		Common::ArchiveMemberPtr rsgKit = _installerArchive->getMember(Common::Path("RSGKit.rPP"));
-		if (!rsgKit)
-			error("Couldn't find word game file in installer archive");
-
-		_wordGameData.reset(new Obsidian::WordGameData());
-
-		Common::SharedPtr<Common::SeekableReadStream> stream(rsgKit->createReadStream());
-		if (!stream)
-			error("Failed to open word game file");
-
-		Obsidian::WordGameLoadBucket buckets[] = {
-			{0, 0},				// 0 letters
-			{0xD7C8, 0xD7CC},	// 1 letter
-			{0xD7CC, 0xD84D},	// 2 letter
-			{0xD84D, 0xE25D},	// 3 letter
-			{0x1008C, 0x12AA8},	// 4 letter
-			{0x14C58, 0x19614},	// 5 letter
-			{0x1C73C, 0x230C1},	// 6 letter
-			{0x26D10, 0x2EB98},	// 7 letter
-			{0x32ADC, 0x3AA0E},	// 8 letter
-			{0x3E298, 0x45B88},	// 9 letter
-			{0x48BE8, 0x4E0D0},	// 10 letter
-			{0x4FFB0, 0x53460},	// 11 letter
-			{0x545F0, 0x56434},	// 12 letter
-			{0x56D84, 0x57CF0}, // 13 letter
-			{0x58158, 0x58833}, // 14 letter
-			{0x58A08, 0x58CD8}, // 15 letter
-			{0x58D8C, 0x58EAD}, // 16 letter
-			{0x58EF4, 0x58F72}, // 17 letter
-			{0x58F90, 0x58FDC},	// 18 letter
-			{0, 0},				// 19 letter
-			{0x58FEC, 0x59001},	// 20 letter
-			{0x59008, 0x59034},	// 21 letter
-			{0x5903C, 0x59053},	// 22 letter
-		};
-
-		if (!_wordGameData->load(stream.get(), buckets, 23, 1, false))
-			error("Failed to load word game data");
+		{
+			Common::ArchiveMemberPtr rsgKit = _installerArchive->getMember(Common::Path("RSGKit.rPP"));
+			if (!rsgKit)
+				error("Couldn't find word game file in installer archive");
+
+			_wordGameData.reset(new Obsidian::WordGameData());
+
+			Common::SharedPtr<Common::SeekableReadStream> stream(rsgKit->createReadStream());
+			if (!stream)
+				error("Failed to open word game file");
+
+			Obsidian::WordGameLoadBucket buckets[] = {
+				{0, 0},             // 0 letters
+				{0xD7C8, 0xD7CC},   // 1 letter
+				{0xD7CC, 0xD84D},   // 2 letter
+				{0xD84D, 0xE25D},   // 3 letter
+				{0x1008C, 0x12AA8}, // 4 letter
+				{0x14C58, 0x19614}, // 5 letter
+				{0x1C73C, 0x230C1}, // 6 letter
+				{0x26D10, 0x2EB98}, // 7 letter
+				{0x32ADC, 0x3AA0E}, // 8 letter
+				{0x3E298, 0x45B88}, // 9 letter
+				{0x48BE8, 0x4E0D0}, // 10 letter
+				{0x4FFB0, 0x53460}, // 11 letter
+				{0x545F0, 0x56434}, // 12 letter
+				{0x56D84, 0x57CF0}, // 13 letter
+				{0x58158, 0x58833}, // 14 letter
+				{0x58A08, 0x58CD8}, // 15 letter
+				{0x58D8C, 0x58EAD}, // 16 letter
+				{0x58EF4, 0x58F72}, // 17 letter
+				{0x58F90, 0x58FDC}, // 18 letter
+				{0, 0},             // 19 letter
+				{0x58FEC, 0x59001}, // 20 letter
+				{0x59008, 0x59034}, // 21 letter
+				{0x5903C, 0x59053}, // 22 letter
+			};
+
+			if (!_wordGameData->load(stream.get(), buckets, 23, 1, false))
+				error("Failed to load word game data");
+		}
 	}
 
 	debug(1, "Finished unpacking installer resources");
@@ -402,7 +404,11 @@ Common::Error MTropolisEngine::run() {
 			}
 		}
 
-		Common::SharedPtr<Obsidian::WordGameData> wgData = loadWinObsidianWordGameData();
+		Common::SharedPtr<Obsidian::WordGameData> wgData;
+
+		// Non-English releases don't have Bureau word game puzzles
+		if (_gameDescription->desc.language == Common::Language::EN_ANY)
+			wgData = loadWinObsidianWordGameData();
 
 		desc->setCursorGraphics(cursors);
 
@@ -425,7 +431,8 @@ Common::Error MTropolisEngine::run() {
 		MacObsidianResources *resources = new MacObsidianResources();
 		Common::SharedPtr<ProjectResources> resPtr(resources);
 
-		resources->setup();
+		// Non-English releases don't have Bureau word game puzzles
+		resources->setup(_gameDescription->desc.language == Common::Language::EN_ANY);
 
 		_runtime->addVolume(0, "Installed", true);
 		_runtime->addVolume(1, "OBSIDIAN1", true);




More information about the Scummvm-git-logs mailing list