[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