[Scummvm-git-logs] scummvm master -> 68081925607df57d05c71e0b8f9e5df02e4395bc

mduggan noreply at scummvm.org
Mon Apr 21 09:32:17 UTC 2025


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

Summary:
6808192560 DGDS: Also draw dialog backgroiund on scene transition


Commit: 68081925607df57d05c71e0b8f9e5df02e4395bc
    https://github.com/scummvm/scummvm/commit/68081925607df57d05c71e0b8f9e5df02e4395bc
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2025-04-21T19:12:23+10:00

Commit Message:
DGDS: Also draw dialog backgroiund on scene transition

For some reason I missed drawing the background in this code path.

This fixes, eg, the missing dialog backgrounf on fade to game over after
visiting Lomax 3 times in Heart of China.

Changed paths:
    engines/dgds/scene.cpp
    engines/dgds/ttm.cpp


diff --git a/engines/dgds/scene.cpp b/engines/dgds/scene.cpp
index 0b1ca895739..a83096e7da9 100644
--- a/engines/dgds/scene.cpp
+++ b/engines/dgds/scene.cpp
@@ -1071,11 +1071,12 @@ bool SDSScene::checkDialogActive() {
 						dlgCopy._state->_selectedAction = nullptr;
 					debug(1, "Dialog %d closing: run action (%d ops)", dlg._num, action->sceneOpList.size());
 					if (!runOps(action->sceneOpList)) {
-						// HACK: the scene changed, but we haven't yet drawn the foreground for the
-						// dialog, this is our last chance so do it now.  The game does it in a
+						// HACK: the scene changed, but we may not have drawn the dialog -
+						// this is our last chance so do it now.  The game does it in a
 						// different way that relies on delayed disposal of the dialog data.
 						if (dlgCopy.hasFlag(kDlgFlagVisible) && !dlgCopy.hasFlag(kDlgFlagOpening)) {
 							DgdsEngine *engine = DgdsEngine::getInstance();
+							dlgCopy.draw(&engine->_compositionBuffer, kDlgDrawStageBackground);
 							dlgCopy.draw(&engine->_compositionBuffer, kDlgDrawFindSelectionPointXY);
 							dlgCopy.draw(&engine->_compositionBuffer, kDlgDrawFindSelectionTxtOffset);
 							dlgCopy.draw(&engine->_compositionBuffer, kDlgDrawStageForeground);
diff --git a/engines/dgds/ttm.cpp b/engines/dgds/ttm.cpp
index c36e3941613..450a7f694fc 100644
--- a/engines/dgds/ttm.cpp
+++ b/engines/dgds/ttm.cpp
@@ -613,6 +613,7 @@ void TTMInterpreter::doDrawSpriteOp(const TTMEnviro &env, const TTMSeq &seq, uin
 
 void TTMInterpreter::doFadeOutOp(int16 colorno, int16 ncolors, int16 targetcol, int16 speed) {
 	if (speed == 0) {
+		// Immediately fade to black.
 		_vm->getGamePals()->clearPalette();
 	} else {
 		// The original tight-loops here with 640 steps and i/10 as the fade level..




More information about the Scummvm-git-logs mailing list