aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks
diff options
context:
space:
mode:
authorMatthew Hoops2011-10-07 14:34:22 -0400
committerMatthew Hoops2011-10-07 14:34:22 -0400
commite1dc4db7aa53d1bbc4cdb03d1163c97d049702f5 (patch)
tree9d57b5fdd6737bc3449851a87e573abe7be984a6 /engines/mohawk/myst_stacks
parentdeab5b28753155863062746ef1239535f562fd0b (diff)
parent842b471e45ae8b7c1b4516b9bd5bf39d61112077 (diff)
downloadscummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.tar.gz
scummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.tar.bz2
scummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.zip
Merge remote branch 'upstream/master' into pegasus
Conflicts: video/qt_decoder.cpp
Diffstat (limited to 'engines/mohawk/myst_stacks')
-rw-r--r--engines/mohawk/myst_stacks/channelwood.cpp10
-rw-r--r--engines/mohawk/myst_stacks/demo.cpp9
-rw-r--r--engines/mohawk/myst_stacks/dni.cpp2
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp4
-rw-r--r--engines/mohawk/myst_stacks/preview.cpp10
-rw-r--r--engines/mohawk/myst_stacks/slides.cpp2
6 files changed, 28 insertions, 9 deletions
diff --git a/engines/mohawk/myst_stacks/channelwood.cpp b/engines/mohawk/myst_stacks/channelwood.cpp
index 0dd69a673a..9ca47cc92a 100644
--- a/engines/mohawk/myst_stacks/channelwood.cpp
+++ b/engines/mohawk/myst_stacks/channelwood.cpp
@@ -159,6 +159,16 @@ uint16 Channelwood::getVar(uint16 var) {
return ((_state.waterValveStates & 0xe2) == 0x80) ? 1 : 0;
case 30: // Door State
return _doorOpened;
+ case 31: // Water flowing in pipe fork ?
+ // 0 -> keep sound.
+ // 1 -> not flowing.
+ // 2 --> flowing.
+ if ((_state.waterValveStates & 0xe2) == 0x82) // From left.
+ return 2;
+ if ((_state.waterValveStates & 0xf4) == 0xa0) // From right.
+ return 1;
+
+ return 0;
case 32: // Sound - Water Flowing in Pipe to Book Room Elevator
return ((_state.waterValveStates & 0xf8) == 0xb0 && _state.pipeState) ? 1 : 0;
case 33: // Channelwood Lower Walkway to Upper Walkway Spiral Stair Upper Door State
diff --git a/engines/mohawk/myst_stacks/demo.cpp b/engines/mohawk/myst_stacks/demo.cpp
index c9e806655e..fbad7dc384 100644
--- a/engines/mohawk/myst_stacks/demo.cpp
+++ b/engines/mohawk/myst_stacks/demo.cpp
@@ -84,7 +84,10 @@ void Demo::o_stopIntro(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
void Demo::o_fadeFromBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
debugC(kDebugScript, "Opcode %d: Fade from black", op);
- _vm->_gfx->fadeFromBlack();
+
+ // FIXME: This glitches when enabled. The backbuffer is drawn to screen,
+ // and then the fading occurs, causing the background to appear for one frame.
+ // _vm->_gfx->fadeFromBlack();
}
void Demo::o_fadeToBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
@@ -101,14 +104,14 @@ void Demo::returnToMenu_run() {
switch (_returnToMenuStep){
case 0:
_vm->_gfx->fadeToBlack();
- _vm->changeToCard(2003, true);
+ _vm->changeToCard(2003, false);
_vm->_gfx->fadeFromBlack();
_returnToMenuStep++;
break;
case 1:
_vm->_gfx->fadeToBlack();
- _vm->changeToCard(2001, true);
+ _vm->changeToCard(2001, false);
_vm->_gfx->fadeFromBlack();
_vm->_cursor->showCursor();
diff --git a/engines/mohawk/myst_stacks/dni.cpp b/engines/mohawk/myst_stacks/dni.cpp
index cf28945c71..2ced265f02 100644
--- a/engines/mohawk/myst_stacks/dni.cpp
+++ b/engines/mohawk/myst_stacks/dni.cpp
@@ -106,7 +106,7 @@ void Dni::o_handPage(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
if (_globals.ending == 1 && _vm->_video->getElapsedTime(atrus) > (uint)Audio::Timestamp(0, 6801, 600).msecs()) {
_globals.ending = 2;
_globals.heldPage = 0;
- _vm->_cursor->setCursor(kDefaultMystCursor);
+ _vm->setMainCursor(kDefaultMystCursor);
// Play movie end (atrus leaving)
_vm->_video->setVideoBounds(atrus, Audio::Timestamp(0, 14813, 600), Audio::Timestamp(0xFFFFFFFF));
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 66492d1200..b67b333a85 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -1350,8 +1350,10 @@ void Myst::o_generatorButtonPressed(uint16 op, uint16 var, uint16 argc, uint16 *
if (_state.generatorVoltage)
_vm->_sound->replaceSoundMyst(8297);
- else
+ else {
_vm->_sound->replaceSoundMyst(9297);
+ _vm->_sound->stopBackgroundMyst();
+ }
} else {
if (_generatorVoltage)
_vm->_sound->replaceSoundMyst(6297);
diff --git a/engines/mohawk/myst_stacks/preview.cpp b/engines/mohawk/myst_stacks/preview.cpp
index 1b72c85d96..31e22bb8c5 100644
--- a/engines/mohawk/myst_stacks/preview.cpp
+++ b/engines/mohawk/myst_stacks/preview.cpp
@@ -85,7 +85,10 @@ void Preview::o_fadeToBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
void Preview::o_fadeFromBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
debugC(kDebugScript, "Opcode %d: Fade from black", op);
- _vm->_gfx->fadeFromBlack();
+
+ // FIXME: This glitches when enabled. The backbuffer is drawn to screen,
+ // and then the fading occurs, causing the background to appear for one frame.
+ // _vm->_gfx->fadeFromBlack();
}
void Preview::o_stayHere(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
@@ -99,6 +102,7 @@ void Preview::o_stayHere(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
void Preview::o_speechStop(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
debugC(kDebugScript, "Opcode %d: Speech stop", op);
+ _vm->_sound->stopSound(3001);
_speechRunning = false;
_globals.currentAge = 2;
}
@@ -143,7 +147,7 @@ void Preview::speech_run() {
case 2: // Go to Myst
if (_currentCue >= 2) {
_vm->_gfx->fadeToBlack();
- _vm->changeToCard(3002, true);
+ _vm->changeToCard(3002, false);
_vm->_gfx->fadeFromBlack();
_speechStep++;
@@ -186,7 +190,7 @@ void Preview::speech_run() {
break;
_vm->_gfx->fadeToBlack();
- _vm->changeToCard(3005, true);
+ _vm->changeToCard(3005, false);
_vm->_gfx->fadeFromBlack();
_speechNextTime = time + 1000;
_speechStep++;
diff --git a/engines/mohawk/myst_stacks/slides.cpp b/engines/mohawk/myst_stacks/slides.cpp
index 943cb90071..794793e49c 100644
--- a/engines/mohawk/myst_stacks/slides.cpp
+++ b/engines/mohawk/myst_stacks/slides.cpp
@@ -63,7 +63,7 @@ void Slides::runPersistentScripts() {
// Used on Cards...
if (_vm->_system->getMillis() > _nextCardTime) {
_vm->_gfx->fadeToBlack();
- _vm->changeToCard(_nextCardID, true);
+ _vm->changeToCard(_nextCardID, false);
_vm->_gfx->fadeFromBlack();
}
}