aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2017-02-11 12:05:43 +0100
committerEugene Sandulenko2017-07-03 08:50:10 +0200
commit1286e7fcf0d46dd2887fa466df74f3652f7af1df (patch)
tree9f13649ad91fff6cc49c7b55017c4a5fe1585c44
parentae6f248616a144050337e9687033402c4868d558 (diff)
downloadscummvm-rg350-1286e7fcf0d46dd2887fa466df74f3652f7af1df.tar.gz
scummvm-rg350-1286e7fcf0d46dd2887fa466df74f3652f7af1df.tar.bz2
scummvm-rg350-1286e7fcf0d46dd2887fa466df74f3652f7af1df.zip
MOHAWK: Use an enum for Riven's transition types
-rw-r--r--engines/mohawk/riven_graphics.cpp30
-rw-r--r--engines/mohawk/riven_graphics.h18
-rw-r--r--engines/mohawk/riven_scripts.cpp4
-rw-r--r--engines/mohawk/riven_stacks/aspit.cpp10
-rw-r--r--engines/mohawk/riven_stacks/aspit.h4
-rw-r--r--engines/mohawk/riven_stacks/bspit.cpp4
-rw-r--r--engines/mohawk/riven_stacks/jspit.cpp8
-rw-r--r--engines/mohawk/riven_stacks/ospit.cpp4
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);
}