[Scummvm-git-logs] scummvm master -> 1bed501ac6d5f0cbf54a531ccb8c5fabbb86b39f

eriktorbjorn noreply at scummvm.org
Wed Jul 9 18:00:07 UTC 2025


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

Summary:
c86e132212 SCUMM: Fix detection of some (one?) Mac versions (bug #15509)
d885bfc7c9 SCUMM: MACGUI: Remove unnecessary checks from handleEvent()
1bed501ac6 SCUMM: MACGUI: Hopefully fix the "Skip Scene" Mac menu item


Commit: c86e1322129e94bc9fc6edf1d273248a03632f14
    https://github.com/scummvm/scummvm/commit/c86e1322129e94bc9fc6edf1d273248a03632f14
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-07-09T19:59:42+02:00

Commit Message:
SCUMM: Fix detection of some (one?) Mac versions (bug #15509)

The version of Monkey Island 1 included on the LucasArts Mac CD Game
Pack has, for reasons unknown, empty resource forks on the data files.
When using the Dumper Companion it would create MacBinary files for
them, which the detector didn't recognize.

This was because of a bug in the detector, where it didn't rewind the
stream before determining if it was a MacBinary file. (The SCUMM engine
already handles MacBinary files transparently, so no changes were needed
there.)

Changed paths:
    engines/scumm/detection_internal.h


diff --git a/engines/scumm/detection_internal.h b/engines/scumm/detection_internal.h
index 6c0c189d47c..c4aa0ba344d 100644
--- a/engines/scumm/detection_internal.h
+++ b/engines/scumm/detection_internal.h
@@ -533,6 +533,7 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
 				d.md5Entry = findInMD5Table(md5str.c_str());
 
 				if (!d.md5Entry && (platform == Common::Platform::kPlatformMacintosh || platform == Common::Platform::kPlatformUnknown)) {
+					tmp->seek(0);
 					Common::SeekableReadStream *dataStream = Common::MacResManager::openDataForkFromMacBinary(tmp);
 					if (dataStream) {
 						Common::String dataMD5 = computeStreamMD5AsString(*dataStream, kMD5FileSizeLimit);


Commit: d885bfc7c98badae605019f4a9f9917ac0beee82
    https://github.com/scummvm/scummvm/commit/d885bfc7c98badae605019f4a9f9917ac0beee82
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-07-09T19:59:42+02:00

Commit Message:
SCUMM: MACGUI: Remove unnecessary checks from handleEvent()

Changed paths:
    engines/scumm/macgui/macgui_v5.cpp
    engines/scumm/macgui/macgui_v6.cpp
    engines/scumm/macgui/macgui_v6.h


diff --git a/engines/scumm/macgui/macgui_v5.cpp b/engines/scumm/macgui/macgui_v5.cpp
index bbe3a5a6f9a..afa87cbe157 100644
--- a/engines/scumm/macgui/macgui_v5.cpp
+++ b/engines/scumm/macgui/macgui_v5.cpp
@@ -1127,9 +1127,6 @@ bool MacV5Gui::handleEvent(Common::Event event) {
 		}
 	}
 
-	if (_vm->_userPut <= 0)
-		return false;
-
 	return false;
 }
 
diff --git a/engines/scumm/macgui/macgui_v6.cpp b/engines/scumm/macgui/macgui_v6.cpp
index cb413852568..c6305b54689 100644
--- a/engines/scumm/macgui/macgui_v6.cpp
+++ b/engines/scumm/macgui/macgui_v6.cpp
@@ -1302,17 +1302,4 @@ void MacV6Gui::resetAfterLoad() {
 	reset();
 }
 
-bool MacV6Gui::handleEvent(Common::Event event) {
-	if (MacGuiImpl::handleEvent(event))
-		return true;
-
-	if (_vm->isPaused())
-		return false;
-
-	if (_vm->_userPut <= 0)
-		return false;
-
-	return false;
-}
-
 } // End of namespace Scumm
diff --git a/engines/scumm/macgui/macgui_v6.h b/engines/scumm/macgui/macgui_v6.h
index 4ae96ad3851..d88088c3863 100644
--- a/engines/scumm/macgui/macgui_v6.h
+++ b/engines/scumm/macgui/macgui_v6.h
@@ -61,8 +61,6 @@ public:
 	uint32 getBlack() const override { return 255; }
 	uint32 getWhite() const override { return 254; }
 
-	bool handleEvent(Common::Event event) override;
-
 	const Graphics::Font *getFontByScummId(int32 id) override;
 
 	void setupCursor(int &width, int &height, int &hotspotX, int &hotspotY, int &animate) override;


Commit: 1bed501ac6d5f0cbf54a531ccb8c5fabbb86b39f
    https://github.com/scummvm/scummvm/commit/1bed501ac6d5f0cbf54a531ccb8c5fabbb86b39f
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-07-09T19:59:42+02:00

Commit Message:
SCUMM: MACGUI: Hopefully fix the "Skip Scene" Mac menu item

We have to wait handling it until the screen is back to normal.
Otherwise the background and palette will be corrupted.

Changed paths:
    engines/scumm/macgui/macgui_impl.h
    engines/scumm/macgui/macgui_v6.cpp
    engines/scumm/macgui/macgui_v6.h


diff --git a/engines/scumm/macgui/macgui_impl.h b/engines/scumm/macgui/macgui_impl.h
index 5685f1a30a7..98792329466 100644
--- a/engines/scumm/macgui/macgui_impl.h
+++ b/engines/scumm/macgui/macgui_impl.h
@@ -803,7 +803,7 @@ public:
 
 	static void menuCallback(int id, Common::String &name, void *data);
 	virtual bool initialize();
-	void updateWindowManager();
+	virtual void updateWindowManager();
 	virtual void updateMenus();
 
 	const Graphics::Font *getFont(FontId fontId);
diff --git a/engines/scumm/macgui/macgui_v6.cpp b/engines/scumm/macgui/macgui_v6.cpp
index c6305b54689..3966205fdf2 100644
--- a/engines/scumm/macgui/macgui_v6.cpp
+++ b/engines/scumm/macgui/macgui_v6.cpp
@@ -283,9 +283,7 @@ bool MacV6Gui::handleMenu(int id, Common::String &name) {
 		return true;
 
 	case 202:
-		// TODO: This doesn't work when skipping SMUSH videos, e.g.
-		// the Dig intro video.
-		_vm->processKeyboard(Common::KEYCODE_ESCAPE);
+		_skipScene = true;
 		return true;
 
 	case 203:
@@ -1302,4 +1300,13 @@ void MacV6Gui::resetAfterLoad() {
 	reset();
 }
 
+void MacV6Gui::updateWindowManager() {
+	MacGuiImpl::updateWindowManager();
+
+	if (_skipScene && _screenSaveLevel == 0) {
+		_skipScene = false;
+		_vm->processKeyboard(Common::KEYCODE_ESCAPE);
+	}
+}
+
 } // End of namespace Scumm
diff --git a/engines/scumm/macgui/macgui_v6.h b/engines/scumm/macgui/macgui_v6.h
index d88088c3863..942a472879c 100644
--- a/engines/scumm/macgui/macgui_v6.h
+++ b/engines/scumm/macgui/macgui_v6.h
@@ -38,6 +38,7 @@ private:
 	byte *_backupPalette;
 
 	int _screenSaveLevel = 0;
+	bool _skipScene = false;
 
 #if ENABLE_SCUMM_7_8
 	// V7 games don't honor the music_mute and sfx_mute settings, so we
@@ -61,6 +62,8 @@ public:
 	uint32 getBlack() const override { return 255; }
 	uint32 getWhite() const override { return 254; }
 
+	void updateWindowManager() override;
+
 	const Graphics::Font *getFontByScummId(int32 id) override;
 
 	void setupCursor(int &width, int &height, int &hotspotX, int &hotspotY, int &animate) override;




More information about the Scummvm-git-logs mailing list