[Scummvm-git-logs] scummvm master -> 85ef974d55e08eeb1c0f8632d9af8ee958a39c43

sev- noreply at scummvm.org
Sat Jan 28 22:54:35 UTC 2023


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

Summary:
01f91f7990 DIRECTOR: Use correct debug flag for fast execution
85ef974d55 DIRECTOR: Override delayMillis() and skip delays when fast execution is requested


Commit: 01f91f799040f8c406f61d2e0ea837557351d8ce
    https://github.com/scummvm/scummvm/commit/01f91f799040f8c406f61d2e0ea837557351d8ce
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-01-28T23:47:19+01:00

Commit Message:
DIRECTOR: Use correct debug flag for fast execution

Changed paths:
    engines/director/score.cpp


diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index ac337a6e470..614b1e55326 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -645,7 +645,7 @@ bool Score::renderPrePaletteCycle(uint16 frameId, RenderMode mode) {
 
 		int frameRate = CLIP<int>(_frames[frameId]->_palette.speed, 1, 30);
 
-		if (debugChannelSet(-1, kDebugFewFramesOnly))
+		if (debugChannelSet(-1, kDebugFast))
 			frameRate = 30;
 
 		int frameDelay = 1000/60;
@@ -760,7 +760,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 	if (speed == 0)
 		return;
 
-	if (debugChannelSet(-1, kDebugFewFramesOnly))
+	if (debugChannelSet(-1, kDebugFast))
 		speed = 30;
 
 	// 30 (the maximum) is actually unbounded
@@ -776,7 +776,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 			g_director->draw();
 		} else {
 			// Short circuit for few frames renderer
-			if (debugChannelSet(-1, kDebugFewFramesOnly)) {
+			if (debugChannelSet(-1, kDebugFast)) {
 				g_director->setPalette(resolvePaletteId(currentPalette));
 				return;
 			}
@@ -870,8 +870,8 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 			_paletteTransitionIndex++;
 			_paletteTransitionIndex %= frameCount;
 		} else {
-			// Short circuit for few frames renderer
-			if (debugChannelSet(-1, kDebugFewFramesOnly)) {
+			// Short circuit for fast renderer
+			if (debugChannelSet(-1, kDebugFast)) {
 				g_director->setPalette(resolvePaletteId(currentPalette));
 				return;
 			}
@@ -892,7 +892,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 				}
 				int frameRate = CLIP<int>(_frames[frameId]->_palette.speed, 1, 30);
 
-				if (debugChannelSet(-1, kDebugFewFramesOnly))
+				if (debugChannelSet(-1, kDebugFast))
 					frameRate = 30;
 
 				int frameDelay = 1000/60;


Commit: 85ef974d55e08eeb1c0f8632d9af8ee958a39c43
    https://github.com/scummvm/scummvm/commit/85ef974d55e08eeb1c0f8632d9af8ee958a39c43
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-01-28T23:53:59+01:00

Commit Message:
DIRECTOR: Override delayMillis() and skip delays when fast execution is requested

Changed paths:
    engines/director/director.cpp
    engines/director/director.h
    engines/director/lingo/lingo-funcs.cpp
    engines/director/lingo/xlibs/xplayanim.cpp
    engines/director/score.cpp
    engines/director/transitions.cpp
    engines/director/util.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 4da67b2fe26..e445b0857d2 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -275,7 +275,7 @@ Common::Error DirectorEngine::run() {
 		}
 
 		draw();
-		_system->delayMillis(10);
+		g_director->delayMillis(10);
 	}
 
 	return Common::kNoError;
diff --git a/engines/director/director.h b/engines/director/director.h
index 6c5fb31d1c0..b0e79f997bd 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -223,6 +223,8 @@ public:
 	// game-quirks.cpp
 	void gameQuirks(const char *target, Common::Platform platform);
 
+	void delayMillis(uint32 delay);
+
 public:
 	RandomState _rnd;
 	Graphics::MacWindowManager *_wm;
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index 2f5d8c64a50..5a5724a39db 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -342,7 +342,7 @@ void Lingo::func_beep(int repeats) {
 	for (int r = 1; r <= repeats; r++) {
 		_vm->getCurrentWindow()->getSoundManager()->systemBeep();
 		if (r < repeats)
-			g_system->delayMillis(400);
+			g_director->delayMillis(400);
 	}
 }
 
diff --git a/engines/director/lingo/xlibs/xplayanim.cpp b/engines/director/lingo/xlibs/xplayanim.cpp
index 6dfa2043f38..344fd609194 100644
--- a/engines/director/lingo/xlibs/xplayanim.cpp
+++ b/engines/director/lingo/xlibs/xplayanim.cpp
@@ -103,7 +103,7 @@ void XPlayAnim::b_xplayanim(int nargs) {
 		}
 
 		g_system->updateScreen();
-		g_system->delayMillis(10);
+		g_director->delayMillis(10);
 
 	}
 	if (frame != nullptr)
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 614b1e55326..f37a036dd28 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -670,7 +670,7 @@ bool Score::renderPrePaletteCycle(uint16 frameId, RenderMode mode) {
 					g_director->setPalette(resolvePaletteId(currentPalette));
 					return true;
 				}
-				g_system->delayMillis(frameDelay);
+				g_director->delayMillis(frameDelay);
 			}
 
 		} else {
@@ -704,7 +704,7 @@ bool Score::renderPrePaletteCycle(uint16 frameId, RenderMode mode) {
 					g_director->setPalette(resolvePaletteId(currentPalette));
 					return true;
 				}
-				g_system->delayMillis(frameDelay);
+				g_director->delayMillis(frameDelay);
 			}
 		}
 	}
@@ -792,7 +792,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 						g_director->setPalette(resolvePaletteId(currentPalette));
 						return;
 					}
-					g_system->delayMillis(delay);
+					g_director->delayMillis(delay);
 				}
 				if (_frames[frameId]->_palette.autoReverse) {
 					for (int j = 0; j < steps; j++) {
@@ -803,7 +803,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 							g_director->setPalette(resolvePaletteId(currentPalette));
 							return;
 						}
-						g_system->delayMillis(delay);
+						g_director->delayMillis(delay);
 					}
 				}
 			}
@@ -907,7 +907,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 						g_director->setPalette(resolvePaletteId(currentPalette));
 						return;
 					}
-					g_system->delayMillis(frameDelay);
+					g_director->delayMillis(frameDelay);
 				}
 
 				for (int i = 0; i < fadeFrames; i++) {
@@ -925,7 +925,7 @@ void Score::renderPaletteCycle(uint16 frameId, RenderMode mode) {
 						g_director->setPalette(resolvePaletteId(currentPalette));
 						return;
 					}
-					g_system->delayMillis(frameDelay);
+					g_director->delayMillis(frameDelay);
 				}
 
 			}
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index e7ca50d7fe3..5320aa59383 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -571,7 +571,7 @@ void Window::playTransition(uint frame, uint16 transDuration, uint8 transArea, u
 
 		uint32 endTime = g_system->getMillis();
 		int diff = (int)t.stepDuration - (int)(endTime - startTime);
-		g_system->delayMillis(MAX(0, diff));
+		g_director->delayMillis(MAX(0, diff));
 
 		g_lingo->executePerFrameHook(t.frame, i);
 	}
@@ -773,7 +773,7 @@ void Window::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::Man
 
 		uint32 endTime = g_system->getMillis();
 		int diff = (int)t.stepDuration - (int)(endTime - startTime);
-		g_system->delayMillis(MAX(0, diff));
+		g_director->delayMillis(MAX(0, diff));
 	}
 }
 
@@ -879,7 +879,7 @@ void Window::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graph
 
 		uint32 endTime = g_system->getMillis();
 		int diff = (int)t.stepDuration - (int)(endTime - startTime);
-		g_system->delayMillis(MAX(0, diff));
+		g_director->delayMillis(MAX(0, diff));
 	}
 }
 
@@ -1052,7 +1052,7 @@ void Window::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::Ma
 
 		uint32 endTime = g_system->getMillis();
 		int diff = (int)t.stepDuration - (int)(endTime - startTime);
-		g_system->delayMillis(MAX(0, diff));
+		g_director->delayMillis(MAX(0, diff));
 
 		if (_vm->processEvents(true)) {
 			exitTransition(t, i, nextFrame, clipRect);
@@ -1101,7 +1101,7 @@ void Window::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::Managed
 
 		uint32 endTime = g_system->getMillis();
 		int diff = (int)t.stepDuration - (int)(endTime - startTime);
-		g_system->delayMillis(MAX(0, diff));
+		g_director->delayMillis(MAX(0, diff));
 
 		if (_vm->processEvents(true)) {
 			exitTransition(t, i, nextFrame, clipRect);
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index acb4d0376f6..0305aeed484 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -1211,4 +1211,11 @@ int compareStrings(const Common::String &s1, const Common::String &s2) {
 	return c1 - c2;
 }
 
+void DirectorEngine::delayMillis(uint32 delay) {
+	if (debugChannelSet(-1, kDebugFast))
+		return;
+
+	_system->delayMillis(delay);
+}
+
 } // End of namespace Director




More information about the Scummvm-git-logs mailing list