From 1286e7fcf0d46dd2887fa466df74f3652f7af1df Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Sat, 11 Feb 2017 12:05:43 +0100 Subject: MOHAWK: Use an enum for Riven's transition types --- engines/mohawk/riven_graphics.cpp | 30 +++++++++++++++--------------- engines/mohawk/riven_graphics.h | 18 ++++++++++++++++-- engines/mohawk/riven_scripts.cpp | 4 ++-- engines/mohawk/riven_stacks/aspit.cpp | 10 +++++----- engines/mohawk/riven_stacks/aspit.h | 4 +++- engines/mohawk/riven_stacks/bspit.cpp | 4 ++-- engines/mohawk/riven_stacks/jspit.cpp | 8 ++++---- engines/mohawk/riven_stacks/ospit.cpp | 4 ++-- 8 files changed, 49 insertions(+), 33 deletions(-) diff --git a/engines/mohawk/riven_graphics.cpp b/engines/mohawk/riven_graphics.cpp index 7fa35dd5d4..60b8c5d5f0 100644 --- a/engines/mohawk/riven_graphics.cpp +++ b/engines/mohawk/riven_graphics.cpp @@ -49,7 +49,7 @@ RivenGraphics::RivenGraphics(MohawkEngine_Riven* vm) : GraphicsManager(), _vm(vm _screenUpdateNesting = 0; _screenUpdateRunning = false; - _scheduledTransition = -1; // no transition + _scheduledTransition = kRivenTransitionNone; _dirtyScreen = false; _creditsImage = 302; @@ -201,7 +201,7 @@ bool RivenGraphics::runScheduledWaterEffects() { return false; } -void RivenGraphics::scheduleTransition(uint16 id, Common::Rect rect) { +void RivenGraphics::scheduleTransition(RivenTransition id, Common::Rect rect) { _scheduledTransition = id; _transitionRect = rect; } @@ -217,16 +217,16 @@ void RivenGraphics::runScheduledTransition() { // transitions were found by hacking scripts. switch (_scheduledTransition) { - case 0: // Swipe Left - case 1: // Swipe Right - case 2: // Swipe Up - case 3: // Swipe Down - case 12: // Pan Left - case 13: // Pan Right - case 14: // Pan Up - case 15: // Pan Down - case 16: // Dissolve - case 17: // Dissolve (tspit CARD 155) + case kRivenTransitionWipeLeft: + case kRivenTransitionWipeRight: + case kRivenTransitionWipeUp: + case kRivenTransitionWipeDown: + case kRivenTransitionPanLeft: + case kRivenTransitionPanRight: + case kRivenTransitionPanUp: + case kRivenTransitionPanDown: + case kRivenTransitionBlend: + case kRivenTransitionBlend2: // (tspit CARD 155) break; default: if (_scheduledTransition >= 4 && _scheduledTransition <= 11) @@ -240,7 +240,7 @@ void RivenGraphics::runScheduledTransition() { _vm->_system->copyRectToScreen(_effectScreen->getBasePtr(0, 0), _effectScreen->pitch, 0, 0, _effectScreen->w, _effectScreen->h); _vm->_system->updateScreen(); - _scheduledTransition = -1; // Clear scheduled transition + _scheduledTransition = kRivenTransitionNone; // Clear scheduled transition } void RivenGraphics::clearMainScreen() { @@ -250,7 +250,7 @@ void RivenGraphics::clearMainScreen() { void RivenGraphics::fadeToBlack() { // The transition speed is forced to best here setTransitionSpeed(kRivenTransitionSpeedBest); - scheduleTransition(16); + scheduleTransition(kRivenTransitionBlend); clearMainScreen(); runScheduledTransition(); } @@ -324,7 +324,7 @@ void RivenGraphics::updateCredits() { if (_creditsImage < 304) { // For the first two credit images, they are faded from black to the image and then out again - scheduleTransition(16); + scheduleTransition(kRivenTransitionBlend); Graphics::Surface *frame = findImage(_creditsImage++)->getSurface(); diff --git a/engines/mohawk/riven_graphics.h b/engines/mohawk/riven_graphics.h index 76bcae5c20..18b1e1dcd3 100644 --- a/engines/mohawk/riven_graphics.h +++ b/engines/mohawk/riven_graphics.h @@ -30,6 +30,20 @@ namespace Mohawk { class MohawkEngine_Riven; class FliesEffect; +enum RivenTransition { + kRivenTransitionNone = -1, + kRivenTransitionWipeLeft = 0, + kRivenTransitionWipeRight = 1, + kRivenTransitionWipeUp = 2, + kRivenTransitionWipeDown = 3, + kRivenTransitionPanLeft = 12, + kRivenTransitionPanRight = 13, + kRivenTransitionPanUp = 14, + kRivenTransitionPanDown = 15, + kRivenTransitionBlend = 16, + kRivenTransitionBlend2 = 17 +}; + class RivenGraphics : public GraphicsManager { public: RivenGraphics(MohawkEngine_Riven *vm); @@ -60,7 +74,7 @@ public: void runFliesEffect(); // Transitions - void scheduleTransition(uint16 id, Common::Rect rect = Common::Rect(0, 0, 608, 392)); + void scheduleTransition(RivenTransition id, Common::Rect rect = Common::Rect(0, 0, 608, 392)); void runScheduledTransition(); void fadeToBlack(); void setTransitionSpeed(uint32 speed) { _transitionSpeed = speed; } @@ -98,7 +112,7 @@ private: FliesEffect *_fliesEffect; // Transitions - int16 _scheduledTransition; + RivenTransition _scheduledTransition; Common::Rect _transitionRect; uint32 _transitionSpeed; diff --git a/engines/mohawk/riven_scripts.cpp b/engines/mohawk/riven_scripts.cpp index 7b95abb077..ad7196dd26 100644 --- a/engines/mohawk/riven_scripts.cpp +++ b/engines/mohawk/riven_scripts.cpp @@ -476,9 +476,9 @@ void RivenSimpleCommand::runExternalCommand(uint16 op, uint16 argc, uint16 *argv // Parameters 1-4: transition rectangle void RivenSimpleCommand::transition(uint16 op, uint16 argc, uint16 *argv) { if (argc == 1) - _vm->_gfx->scheduleTransition(argv[0]); + _vm->_gfx->scheduleTransition((RivenTransition) argv[0]); else - _vm->_gfx->scheduleTransition(argv[0], Common::Rect(argv[1], argv[2], argv[3], argv[4])); + _vm->_gfx->scheduleTransition((RivenTransition) argv[0], Common::Rect(argv[1], argv[2], argv[3], argv[4])); } // Command 19: reload card diff --git a/engines/mohawk/riven_stacks/aspit.cpp b/engines/mohawk/riven_stacks/aspit.cpp index f930dfc8cf..27b4c8939f 100644 --- a/engines/mohawk/riven_stacks/aspit.cpp +++ b/engines/mohawk/riven_stacks/aspit.cpp @@ -99,7 +99,7 @@ void ASpit::xaatrusbookback(uint16 argc, uint16 *argv) { _vm->_inventory->backFromItemScript(); } -bool ASpit::pageTurn(int16 transition) { +bool ASpit::pageTurn(RivenTransition transition) { // Wait until the previous page turn sound completes while (_vm->_sound->isEffectPlaying() && !_vm->shouldQuit()) { if (!mouseIsDown()) { @@ -137,7 +137,7 @@ void ASpit::xaatrusbookprevpage(uint16 argc, uint16 *argv) { if (page == 1) return; - if (!pageTurn(1)) { + if (!pageTurn(kRivenTransitionWipeRight)) { return; } @@ -161,7 +161,7 @@ void ASpit::xaatrusbooknextpage(uint16 argc, uint16 *argv) { if (((_vm->getFeatures() & GF_DEMO) && page == 6) || page == 10) return; - if (!pageTurn(0)) { + if (!pageTurn(kRivenTransitionWipeLeft)) { return; } @@ -237,7 +237,7 @@ void ASpit::xacathbookprevpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(5); // Now update the screen :) - _vm->_gfx->scheduleTransition(3); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeDown); _vm->getCard()->drawPicture(page); } @@ -254,7 +254,7 @@ void ASpit::xacathbooknextpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(6); // Now update the screen :) - _vm->_gfx->scheduleTransition(2); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeUp); _vm->getCard()->drawPicture(page); } diff --git a/engines/mohawk/riven_stacks/aspit.h b/engines/mohawk/riven_stacks/aspit.h index d64214d91f..3ac3fa86e2 100644 --- a/engines/mohawk/riven_stacks/aspit.h +++ b/engines/mohawk/riven_stacks/aspit.h @@ -25,6 +25,8 @@ #include "mohawk/riven_stack.h" +#include "mohawk/riven_graphics.h" + namespace Mohawk { namespace RivenStacks { @@ -69,7 +71,7 @@ public: void xaexittomain(uint16 argc, uint16 *argv); private: - bool pageTurn(int16 transition); + bool pageTurn(RivenTransition transition); }; } // End of namespace RivenStacks diff --git a/engines/mohawk/riven_stacks/bspit.cpp b/engines/mohawk/riven_stacks/bspit.cpp index 7a8ac69abf..c5fedd7a59 100644 --- a/engines/mohawk/riven_stacks/bspit.cpp +++ b/engines/mohawk/riven_stacks/bspit.cpp @@ -101,7 +101,7 @@ void BSpit::xblabbookprevpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(22); // Now update the screen :) - _vm->_gfx->scheduleTransition(1); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeRight); _vm->getCard()->drawPicture(page); } @@ -118,7 +118,7 @@ void BSpit::xblabbooknextpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(23); // Now update the screen :) - _vm->_gfx->scheduleTransition(0); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeLeft); _vm->getCard()->drawPicture(page); } diff --git a/engines/mohawk/riven_stacks/jspit.cpp b/engines/mohawk/riven_stacks/jspit.cpp index f4b0c0fc62..db2acfb28b 100644 --- a/engines/mohawk/riven_stacks/jspit.cpp +++ b/engines/mohawk/riven_stacks/jspit.cpp @@ -225,12 +225,12 @@ void JSpit::xvga1300_carriage(uint16 argc, uint16 *argv) { _vm->_cursor->setCursor(kRivenHideCursor); // Hide the cursor _vm->_system->updateScreen(); // Update _vm->_video->playMovieBlockingRiven(1); // Play handle movie - _vm->_gfx->scheduleTransition(15); // Set pan down transition + _vm->_gfx->scheduleTransition(kRivenTransitionPanDown); _vm->changeToCard(_vm->getStack()->getCardStackId(0x18e77)); // Change to card facing up _vm->_cursor->setCursor(kRivenHideCursor); // Hide the cursor (again) _vm->_system->updateScreen(); // Update _vm->_video->playMovieBlockingRiven(4); // Play carriage beginning to drop - _vm->_gfx->scheduleTransition(14); // Set pan up transition + _vm->_gfx->scheduleTransition(kRivenTransitionPanUp); _vm->changeToCard(_vm->getStack()->getCardStackId(0x183a9)); // Change to card looking straight again _vm->_video->playMovieBlockingRiven(2); @@ -265,12 +265,12 @@ void JSpit::xvga1300_carriage(uint16 argc, uint16 *argv) { _vm->_system->updateScreen(); // Update if (gotClick) { - _vm->_gfx->scheduleTransition(16); // Schedule dissolve transition + _vm->_gfx->scheduleTransition(kRivenTransitionBlend); _vm->changeToCard(_vm->getStack()->getCardStackId(0x18d4d)); // Move forward _vm->_cursor->setCursor(kRivenHideCursor); // Hide the cursor _vm->_system->updateScreen(); // Update _vm->_system->delayMillis(500); // Delay a half second before changing again - _vm->_gfx->scheduleTransition(12); // Schedule pan left transition + _vm->_gfx->scheduleTransition(kRivenTransitionPanLeft); _vm->changeToCard(_vm->getStack()->getCardStackId(0x18ab5)); // Turn right _vm->_cursor->setCursor(kRivenHideCursor); // Hide the cursor _vm->_system->updateScreen(); // Update diff --git a/engines/mohawk/riven_stacks/ospit.cpp b/engines/mohawk/riven_stacks/ospit.cpp index 7607a93f8d..12328de744 100644 --- a/engines/mohawk/riven_stacks/ospit.cpp +++ b/engines/mohawk/riven_stacks/ospit.cpp @@ -228,7 +228,7 @@ void OSpit::xogehnbookprevpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(12); // Now update the screen :) - _vm->_gfx->scheduleTransition(1); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeRight); _vm->getCard()->drawPicture(page); } @@ -245,7 +245,7 @@ void OSpit::xogehnbooknextpage(uint16 argc, uint16 *argv) { _vm->_sound->playSound(13); // Now update the screen :) - _vm->_gfx->scheduleTransition(0); + _vm->_gfx->scheduleTransition(kRivenTransitionWipeLeft); _vm->getCard()->drawPicture(page); } -- cgit v1.2.3