Skip to content
Permalink
Browse files

DIRECTOR: Implement kTransCenterOutHorizontal

  • Loading branch information
sev- committed Mar 24, 2020
1 parent 547a1d7 commit 979a8d1b78d2bec8dc5c5ee8fe092baf2289349f
Showing with 17 additions and 1 deletion.
  1. +17 −1 engines/director/transitions.cpp
@@ -44,7 +44,23 @@ void Frame::playTransition(Score *score) {
switch (_transType) {
case kTransCenterOutHorizontal: // 5
{
warning("Frame::playTransition(): Unhandled transition type kTransCenterOutHorizontal %d %d", duration, _transChunkSize);
uint16 stepSize = score->_movieRect.width() / steps / 2;
Common::Rect r = score->_movieRect;

score->_backSurface->copyFrom(*score->_surface);

for (uint16 i = 1; i < steps; i++) {
r.setWidth(stepSize * i * 2);
r.moveTo(score->_movieRect.width() / 2 - stepSize * i, 0);

g_system->delayMillis(stepDuration);
processQuitEvent();

score->_backSurface->copyRectToSurface(*score->_surface, 0, 0, r);

g_system->copyRectToScreen(score->_backSurface->getPixels(), score->_backSurface->pitch, score->_movieRect.width() / 2 - stepSize * i, 0, r.width(), r.height()); // transition
g_system->updateScreen();
}
}
break;

0 comments on commit 979a8d1

Please sign in to comment.
You can’t perform that action at this time.