[Scummvm-git-logs] scummvm master -> a098fb1bca08e48d29c0ddfef8eeeaf304e8bc91

elasota noreply at scummvm.org
Mon May 13 23:40:05 UTC 2024


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:
a098fb1bca MTROPOLIS: Fix Obsidian Widescreen Hacks


Commit: a098fb1bca08e48d29c0ddfef8eeeaf304e8bc91
    https://github.com/scummvm/scummvm/commit/a098fb1bca08e48d29c0ddfef8eeeaf304e8bc91
Author: Ryan Parnas (ryan.parnas at gmail.com)
Date: 2024-05-13T19:40:02-04:00

Commit Message:
MTROPOLIS: Fix Obsidian Widescreen Hacks
  - Annotate and cleanup widescreen hacks
  - Fix Typo in Win EN version (Limitation Document, Atlas Face) should be 0x4dfa22, was just missing before
  - Fix Typo in Mac EN version (Limitation Document, Time Face) should be 0x4e2e7b, had typo before
  - Enable widescreen hack for international versions

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


diff --git a/engines/mtropolis/detection_tables.h b/engines/mtropolis/detection_tables.h
index db1a06a65c0..9ad2e42b40a 100644
--- a/engines/mtropolis/detection_tables.h
+++ b/engines/mtropolis/detection_tables.h
@@ -90,7 +90,7 @@ static const MTropolisGameDescription gameDescriptions[] = {
 			Common::JA_JPN,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
+			GUIO2(GAMEOPTION_WIDESCREEN_MOD, GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
 		},
 		GID_OBSIDIAN,
 		0,
@@ -144,7 +144,7 @@ static const MTropolisGameDescription gameDescriptions[] = {
 			Common::DE_DEU,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
+			GUIO2(GAMEOPTION_WIDESCREEN_MOD, GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
 		},
 		GID_OBSIDIAN,
 		0,
@@ -169,7 +169,7 @@ static const MTropolisGameDescription gameDescriptions[] = {
 			Common::DE_DEU,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
+			GUIO2(GAMEOPTION_WIDESCREEN_MOD, GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
 		},
 		GID_OBSIDIAN,
 		0,
@@ -195,7 +195,7 @@ static const MTropolisGameDescription gameDescriptions[] = {
 			Common::IT_ITA,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
+			GUIO2(GAMEOPTION_WIDESCREEN_MOD, GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS)
 		},
 		GID_OBSIDIAN,
 		0,
diff --git a/engines/mtropolis/hacks.cpp b/engines/mtropolis/hacks.cpp
index 7cd777fe2ea..e3fddc92a5b 100644
--- a/engines/mtropolis/hacks.cpp
+++ b/engines/mtropolis/hacks.cpp
@@ -430,145 +430,38 @@ void addObsidianBugFixes(const MTropolisGameDescription &desc, Hacks &hacks) {
 }
 
 void addObsidianImprovedWidescreen(const MTropolisGameDescription &desc, Hacks &hacks) {
-	if ((desc.desc.flags & ADGF_DEMO) == 0 && desc.desc.language == Common::EN_ANY && desc.desc.platform == Common::kPlatformWindows) {
+	if ((desc.desc.flags & ADGF_DEMO) == 0) {
 		const uint32 inventoryItemGUIDs[] = {
-			// Bureau documents
-			// 100 area (booths)
-			0x4e2d9e,
-			0x4dfa22,
-
-			// 199 area (booths hint room)
-			0x4e2555,
-			0x4de654,
-
-			// 200 area (library)
-			0x4c83d2,
-			0x4c5802,
-
-			// 299 area (Cloud Ring)
-			0x178d5c,
-			0x177754,
-
-			// 300 area (light+phone)
-			0x4e0f86,
-			0x4e5107,
-
-			// 400 area (maze)
-			0x4e5528,
-			0x4e55cc,
-
-			// 500 area (Immediate Action)
-			0x4e2e7b,
-			0x4e0710,
-
-			// 800 area (bookshelves)
-			0x9914fb,
-			0x990f1f,
-
-			// 600 (sky face), 699 (mountain), and 700 (finale) have no document elements (player loses the documents)
-
-			// Bureau maze keycards
-			0x6035f,
-			0x62e24,
-			0x58d7f,
-			0x58212,
-
-			// Spider metal puzzle beaker
-			0x12fa7,
-
-			// Inspiration chip
-			// 100 area (Junkyard)
-			0x5f02e6,
-
-			// 200 area (Plane)
-			0x9bd5fc,
-
-			// 300 area (Piazza)
-			0x5ef979,
-			
-			// 400 area (Church)
-			0xed9a8f,
-
-			// 500 area (Statue)
-			0x5ecdee,
-		};
-
-		const uint32 cubeMazeSecurityFormGUID = 0x9602ec;
-		const uint32 rsgIntroMovieGUID = 0x2fc101;
-
-		Common::SharedPtr<StructuralHooks> invItemHooks(new ObsidianInventoryWindscreenHooks());
-
-		for (uint32 guid : inventoryItemGUIDs)
-			hacks.addStructuralHooks(guid, invItemHooks);
-
-		hacks.addStructuralHooks(cubeMazeSecurityFormGUID, Common::SharedPtr<StructuralHooks>(new ObsidianSecurityFormWidescreenHooks()));
-		hacks.addStructuralHooks(rsgIntroMovieGUID, Common::SharedPtr<StructuralHooks>(new ObsidianRSGLogoWidescreenHooks()));
-	}
-	if ((desc.desc.flags & ADGF_DEMO) == 0 && desc.desc.language == Common::EN_ANY && desc.desc.platform == Common::kPlatformMacintosh) {
-		const uint32 inventoryItemGUIDs[] = {
-			// Bureau documents
-			// 100 area (booths)
-			0x4dfa22,
-			0x4e2d9e,
-
-			// 199 area (booths hint room)
-			0x4e2555,
-			0x4de654,
-
-			// 200 area (library)
-			0x4c83d2,
-			0x4c5802,
-
-			// 299 area (Cloud Ring)
-			0x178d5c,
-			0x177754,
-
-			// 300 area (light+phone)
-			0x4e0f86,
-			0x4e5107,
-
-			// 400 area (maze)
-			0x4e5528,
-			0x4e55cc,
-
-			// 500 area (Immediate Action)
-			0x4e2e7b,
-			0x4e0710,
-
-			// 800 area (bookshelves)
-			0x9914fb,
-			0x990f1f,
-
-			// 600 (sky face), 699 (mountain), and 700 (finale) have no document elements (player loses the documents)
-
-			// Bureau maze keycards
-			0x6035f,
-			0x62e24,
-			0x58d7f,
-			0x58212,
-
-			// Spider metal puzzle beaker
-			0x12fa7,
-
-			// Inspiration chip
-			// 100 area (Junkyard)
-			0x5f02e6,
-
-			// 200 area (Plane)
-			0x9bd5fc,
-
-			// 300 area (Piazza)
-			0x5ef979,
-
-			// 400 area (Church)
-			0xed9a8f,
-
-			// 500 area (Statue)
-			0x5ecdee,
+			0x4dfa22, // Obsidian Data > Labyrinth1 > 100 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Atlas Face)
+			0x4e2d9e, // Obsidian Data > Labyrinth1 > 100 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Atlas Face)
+			0x4e2555, // Obsidian Data > Labyrinth1 > 199 > > L200.0L.63Fxx.mtn (Limitation Document, Glyph Chamber)
+			0x4de654, // Obsidian Data > Labyrinth1 > 199 > > L200.0L.64Fxx.mtn (Tradesman Document, Glyph Chamber)
+			0x4c83d2, // Obsidian Data > Labyrinth1 > 200 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Records Face)
+			0x4c5802, // Obsidian Data > Labyrinth1 > 200 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Records Face)
+			0x178d5c, // Obsidian Data > Labyrinth1 > 299 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Cloud Ring)
+			0x177754, // Obsidian Data > Labyrinth1 > 299 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Cloud Ring)
+			0x9914fb, // Obsidian Data > Labyrinth1 > 800 > > L200.0L.63Fxx.mtn (Limitation Document, Sunken Library)
+			0x990f1f, // Obsidian Data > Labyrinth1 > 800 > > L200.0L.64Fxx.mtn (Tradesman Document, Sunken Library)
+			0x4e0f86, // Obsidian Data > Labyrinth2 > 300 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Nexus Face)
+			0x4e5107, // Obsidian Data > Labyrinth2 > 300 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Nexus Face)
+			0x4e5528, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Security Face)
+			0x4e55cc, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Security Face)
+			0x6035f, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > Inventory Cards > L400.0L.04Fxx.mtn - Black (Cards, Security Face)
+			0x62e24, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > Inventory Cards > L400.0L.04Fxx.mtn - Blue (Cards, Security Face)
+			0x58d7f, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > Inventory Cards > L400.0L.04Fxx.mtn - Yellow (Cards, Security Face)
+			0x58212, // Obsidian Data > Labyrinth2 > 400 > Untitled Shared Scene > Inventory Cards > L400.0L.04Fxx.mtn - Red (Cards, Security Face)
+			0x4e2e7b, // Obsidian Data > Labyrinth2 > 500 > Untitled Shared Scene > L200.0L.63Fxx.mtn (Limitation Document, Time Face)
+			0x4e0710, // Obsidian Data > Labyrinth2 > 500 > Untitled Shared Scene > L200.0L.64Fxx.mtn (Tradesman Document, Time Face)
+			0x12fa7,  // Obsidian Data > Abraxas1 > 400 > Untitled Shared Scene > Inventory Beaker (Inventory Beaker, Metal Balcony)
+			0x5f02e6, // Obsidian Data > Bismuth1 > 100 > Untitled Shared Scene > B201.2L.02Fxx.spr (Inspiration Chip, Junkyard)
+			0x9bd5fc, // Obsidian Data > Bismuth1 > 200 > Untitled Shared Scene > B201.2L.02Fxx.spr (Inspiration Chip, Plane)
+			0x5ef979, // Obsidian Data > Bismuth1 > 300 > Untitled Shared Scene > B201.2L.02Fxx.spr (Inspiration Chip, Piazza)
+			0x5ecdee, // Obsidian Data > Bismuth1 > 500 > Untitled Shared Scene > B201.2L.02Fxx.spr (Inspiration Chip, Statue)
+			0xed9a8f, // Obsidian Data > Bismuth2 > 400 > Untitled Shared Scene > B201.2L.02Fxx.spr (Inspiration Chip, Church of the Machine)
 		};
 
-		const uint32 cubeMazeSecurityFormGUID = 0x9602ec;
-		const uint32 rsgIntroMovieGUID = 0x2fc101;
+		const uint32 cubeMazeSecurityFormGUID = 0x9602ec; // Obsidian Data > Labyrinth2 > 400 > L437.2L.02Fxx.spr (Security Form, Securty Booth)
+		const uint32 rsgIntroMovieGUID = 0x2fc101; // Obsidian Data > Start Obsidian > SplashScreen > RSG Splash > rssplash.F11.cut (Rocket Science Games Logo)
 
 		Common::SharedPtr<StructuralHooks> invItemHooks(new ObsidianInventoryWindscreenHooks());
 




More information about the Scummvm-git-logs mailing list