[Scummvm-git-logs] scummvm master -> 25632958e720b923c2e015f06b041ae280af82fb
moralrecordings
noreply at scummvm.org
Sun May 26 17:09:52 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
25632958e7 DIRECTOR: Fix issues with palette transitions
Commit: 25632958e720b923c2e015f06b041ae280af82fb
https://github.com/scummvm/scummvm/commit/25632958e720b923c2e015f06b041ae280af82fb
Author: Scott Percival (code at moral.net.au)
Date: 2024-05-27T01:09:13+08:00
Commit Message:
DIRECTOR: Fix issues with palette transitions
Exiting a transition early should result in the target palette.
In addition, mouseDown and keyDown events are enough to register a
transition skip, not mouseUp.
Fixes palette glitches in Majestic.
Changed paths:
engines/director/events.cpp
engines/director/transitions.cpp
engines/director/window.h
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 5eaac9a32be..cb8ba0d6f64 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -80,7 +80,9 @@ bool DirectorEngine::processEvents(bool captureClick, bool skipWindowManager) {
if (captureClick)
return true;
break;
- case Common::EVENT_LBUTTONUP:
+ case Common::EVENT_LBUTTONDOWN:
+ case Common::EVENT_RBUTTONDOWN:
+ case Common::EVENT_KEYDOWN:
if (captureClick)
return true;
break;
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index bf0c8cc1894..ab3e0ae74de 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -132,9 +132,9 @@ struct {
TRANS(kTransDissolveBits, kTransAlgoDissolve, kTransDirDissolve)
};
-void Window::exitTransition(TransParams &t, int step, Graphics::ManagedSurface *nextFrame, Common::Rect clipRect) {
+void Window::exitTransition(TransParams &t, Graphics::ManagedSurface *nextFrame, Common::Rect clipRect) {
_composeSurface->blitFrom(*nextFrame, clipRect, Common::Point(clipRect.left, clipRect.top));
- stepTransition(t, step);
+ stepTransition(t, t.steps);
}
void Window::stepTransition(TransParams &t, int step) {
@@ -560,7 +560,7 @@ void Window::playTransition(uint frame, RenderMode mode, uint16 transDuration, u
_composeSurface->blitFrom(*blitFrom, rfrom, Common::Point(rto.left, rto.top));
if (_vm->processEvents(true)) {
- exitTransition(t, i, &nextFrame, clipRect);
+ exitTransition(t, &nextFrame, clipRect);
break;
}
@@ -765,7 +765,7 @@ void Window::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::Man
g_lingo->executePerFrameHook(t.frame, i + 1);
if (_vm->processEvents(true)) {
- exitTransition(t, i, nextFrame, clipRect);
+ exitTransition(t, nextFrame, clipRect);
break;
}
@@ -871,7 +871,7 @@ void Window::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graph
g_lingo->executePerFrameHook(t.frame, i + 1);
if (_vm->processEvents(true)) {
- exitTransition(t, i, nextFrame, clipRect);
+ exitTransition(t, nextFrame, clipRect);
break;
}
@@ -1053,7 +1053,7 @@ void Window::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::Ma
g_director->delayMillis(MAX(0, diff));
if (_vm->processEvents(true)) {
- exitTransition(t, i, nextFrame, clipRect);
+ exitTransition(t, nextFrame, clipRect);
break;
}
@@ -1104,7 +1104,7 @@ void Window::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::Managed
r.moveTo(w / 2 - t.xStepSize * i, h / 2 - t.yStepSize * i);
if (_vm->processEvents(true)) {
- exitTransition(t, i, nextFrame, clipRect);
+ exitTransition(t, nextFrame, clipRect);
break;
}
diff --git a/engines/director/window.h b/engines/director/window.h
index 451a17424e2..4881649c5a6 100644
--- a/engines/director/window.h
+++ b/engines/director/window.h
@@ -116,7 +116,7 @@ public:
void reset();
// transitions.cpp
- void exitTransition(TransParams &t, int step, Graphics::ManagedSurface *nextFrame, Common::Rect clipRect);
+ void exitTransition(TransParams &t, Graphics::ManagedSurface *nextFrame, Common::Rect clipRect);
void stepTransition(TransParams &t, int step);
void playTransition(uint frame, RenderMode mode, uint16 transDuration, uint8 transArea, uint8 transChunkSize, TransitionType transType, CastMemberID paletteId);
void initTransParams(TransParams &t, Common::Rect &clipRect);
More information about the Scummvm-git-logs
mailing list