[Scummvm-git-logs] scummvm master -> 95f7d681c52589292830dd1256ca1904b3721573

sev- noreply at scummvm.org
Tue Jul 5 23:47:21 UTC 2022


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

Summary:
3fdc914754 DIRECTOR: promote wmMode to instance variable
d99da56120 DIRECTOR: check _wmMode for desktop
a2d4dfa4a1 DIRECTOR: add Kids Box quirk
95f7d681c5 DIRECTOR: move gameQuirks to end of constructor


Commit: 3fdc914754c67b7d919aba214a82e1395357b918
    https://github.com/scummvm/scummvm/commit/3fdc914754c67b7d919aba214a82e1395357b918
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-07-06T01:47:16+02:00

Commit Message:
DIRECTOR: promote wmMode to instance variable

Changed paths:
    engines/director/director.cpp
    engines/director/director.h
    engines/director/lingo/lingo-the.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index e7ed56c9f5c..7ba538b3060 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -49,11 +49,6 @@
 
 namespace Director {
 
-const uint32 wmModeDesktop = Graphics::kWMModalMenuMode | Graphics::kWMModeManualDrawWidgets;
-const uint32 wmModeFullscreen = Graphics::kWMModalMenuMode | Graphics::kWMModeNoDesktop
-	| Graphics::kWMModeManualDrawWidgets | Graphics::kWMModeFullscreen;
-uint32 wmMode = 0;
-
 DirectorEngine *g_director;
 
 DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
@@ -90,6 +85,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 	_version = getDescriptionVersion();
 	_fixStageSize = false;
 	_fixStageRect = Common::Rect();
+	_wmMode = debugChannelSet(-1, kDebugDesktop) ? wmModeDesktop : wmModeFullscreen;
 
 	_wm = nullptr;
 
@@ -178,12 +174,10 @@ Common::Error DirectorEngine::run() {
 
 	_currentPalette = nullptr;
 
-	wmMode = debugChannelSet(-1, kDebugDesktop) ? wmModeDesktop : wmModeFullscreen;
-
 	if (debugChannelSet(-1, kDebug32bpp))
-		wmMode |= Graphics::kWMMode32bpp;
+		_wmMode |= Graphics::kWMMode32bpp;
 
-	_wm = new Graphics::MacWindowManager(wmMode, &_director3QuickDrawPatterns, getLanguage());
+	_wm = new Graphics::MacWindowManager(_wmMode, &_director3QuickDrawPatterns, getLanguage());
 	_wm->setEngine(this);
 
 	_pixelformat = _wm->_pixelformat;
diff --git a/engines/director/director.h b/engines/director/director.h
index 9e82a6baaf4..bb336d90489 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -55,6 +55,10 @@ class ManagedSurface;
 
 namespace Director {
 
+const uint32 wmModeDesktop = Graphics::kWMModalMenuMode | Graphics::kWMModeManualDrawWidgets;
+const uint32 wmModeFullscreen = Graphics::kWMModalMenuMode | Graphics::kWMModeNoDesktop
+	| Graphics::kWMModeManualDrawWidgets | Graphics::kWMModeFullscreen;
+
 class Archive;
 class Cast;
 class DirectorSound;
@@ -235,6 +239,7 @@ public:
 	const DirectorGameDescription *_gameDescription;
 	Common::FSNode _gameDataDir;
 	CastMemberID *_clipBoard;
+	uint32 _wmMode;
 
 private:
 	byte *_currentPalette;
@@ -323,7 +328,6 @@ struct DirectorPlotData {
 
 extern DirectorEngine *g_director;
 extern Debugger *g_debugger;
-extern uint32 wmMode;
 
 } // End of namespace Director
 
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index cdcf3c30b8f..c2dd875e550 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -999,9 +999,9 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 		break;
 	case kTheButtonStyle:
 		if (d.asInt())
-			g_director->_wm->_mode = Director::wmMode | Graphics::kWMModeButtonDialogStyle;
+			g_director->_wm->_mode = g_director->_wmMode | Graphics::kWMModeButtonDialogStyle;
 		else
-			g_director->_wm->_mode = Director::wmMode;
+			g_director->_wm->_mode = g_director->_wmMode;
 		break;
 	case kTheCast:
 		setTheCast(id, field, d);


Commit: d99da561201ef860063b37fba03c9f602eef4d82
    https://github.com/scummvm/scummvm/commit/d99da561201ef860063b37fba03c9f602eef4d82
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-07-06T01:47:16+02:00

Commit Message:
DIRECTOR: check _wmMode for desktop

Changed paths:
    engines/director/director.cpp
    engines/director/director.h
    engines/director/movie.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 7ba538b3060..0187642b4c2 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -187,7 +187,7 @@ Common::Error DirectorEngine::run() {
 	_stage = new Window(_wm->getNextId(), false, false, false, _wm, this, true);
 	*_stage->_refCount += 1;
 
-	if (!debugChannelSet(-1, kDebugDesktop))
+	if (!desktopEnabled())
 		_stage->disableBorder();
 
 	_surface = new Graphics::ManagedSurface(1, 1);
@@ -319,4 +319,8 @@ Common::String DirectorEngine::getStartupPath() const {
 	return _options.startupPath;
 }
 
+bool DirectorEngine::desktopEnabled() {
+	return !(_wmMode & Graphics::kWMModeNoDesktop);
+}
+
 } // End of namespace Director
diff --git a/engines/director/director.h b/engines/director/director.h
index bb336d90489..5d687e9f41f 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -204,6 +204,8 @@ public:
 
 	Archive *createArchive();
 
+	bool desktopEnabled();
+
 	// events.cpp
 	bool processEvents(bool captureClick = false);
 	void processEventQUIT();
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 676de2fddc4..2ac41aa2dd4 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -150,8 +150,8 @@ bool Movie::loadArchive() {
 
 	// TODO: Add more options for desktop dimensions
 	if (_window == _vm->getStage()) {
-		uint16 windowWidth = debugChannelSet(-1, kDebugDesktop) ? 1024 : _movieRect.width();
-		uint16 windowHeight = debugChannelSet(-1, kDebugDesktop) ? 768 : _movieRect.height();
+		uint16 windowWidth = g_director->desktopEnabled() ? 1024 : _movieRect.width();
+		uint16 windowHeight = g_director->desktopEnabled() ? 768 : _movieRect.height();
 		if (_vm->_wm->_screenDims.width() != windowWidth || _vm->_wm->_screenDims.height() != windowHeight) {
 			_vm->_wm->resizeScreen(windowWidth, windowHeight);
 			recenter = true;
@@ -160,7 +160,7 @@ bool Movie::loadArchive() {
 		}
 	}
 
-	if (recenter && debugChannelSet(-1, kDebugDesktop))
+	if (recenter && g_director->desktopEnabled())
 		_window->center(g_director->_centerStage);
 
 	_window->setStageColor(_stageColor, true);


Commit: a2d4dfa4a159c87d90809fef5252603ac244851e
    https://github.com/scummvm/scummvm/commit/a2d4dfa4a159c87d90809fef5252603ac244851e
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-07-06T01:47:16+02:00

Commit Message:
DIRECTOR: add Kids Box quirk

Changed paths:
    engines/director/game-quirks.cpp


diff --git a/engines/director/game-quirks.cpp b/engines/director/game-quirks.cpp
index 3391d38d49b..1c84c6ff31d 100644
--- a/engines/director/game-quirks.cpp
+++ b/engines/director/game-quirks.cpp
@@ -23,6 +23,14 @@
 
 namespace Director {
 
+static void quirkKidsBox() {
+    // Kids Box opens with a 320x150 splash screen before switching to
+    // a full screen 640x480 game window. If desktop mode is off, ScummVM
+    // will pick a game window that fits the splash screen and then try
+    // to squish the full size game window into it.
+    g_director->_wmMode = Director::wmModeDesktop;
+}
+
 static void quirkLzone() {
 	SearchMan.addSubDirectoryMatching(g_director->_gameDataDir, "win_data", 0, 2);
 }
@@ -47,6 +55,7 @@ struct Quirk {
 	Common::Platform platform;
 	void (*quirk)();
 } quirks[] = {
+    { "kidsbox", Common::kPlatformMacintosh, &quirkKidsBox },
 	{ "lzone", Common::kPlatformWindows, &quirkLzone },
 	{ "mediaband", Common::kPlatformUnknown, &quirkMediaband },
 	{ "warlock", Common::kPlatformUnknown, &quirkWarlock },


Commit: 95f7d681c52589292830dd1256ca1904b3721573
    https://github.com/scummvm/scummvm/commit/95f7d681c52589292830dd1256ca1904b3721573
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-07-06T01:47:16+02:00

Commit Message:
DIRECTOR: move gameQuirks to end of constructor

Changed paths:
    engines/director/director.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 0187642b4c2..b3e8ab82fe7 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -96,8 +96,6 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 		SearchMan.addSubDirectoryMatching(_gameDataDir, directoryGlob);
 	}
 
-	gameQuirks(_gameDescription->desc.gameId, _gameDescription->desc.platform);
-
 	if (debugChannelSet(-1, kDebug32bpp))
 		_colorDepth = 32;
 	else
@@ -124,6 +122,8 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 
 	_surface = nullptr;
 	_tickBaseline = 0;
+
+	gameQuirks(_gameDescription->desc.gameId, _gameDescription->desc.platform);
 }
 
 DirectorEngine::~DirectorEngine() {




More information about the Scummvm-git-logs mailing list