aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks/myst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mohawk/myst_stacks/myst.cpp')
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp368
1 files changed, 1 insertions, 367 deletions
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 086589a51b..c4cc4cce11 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -338,32 +338,6 @@ void MystScriptParser_Myst::opcode_101(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- varUnusedCheck(op, var);
-
- if (argc == 1) {
- debugC(kDebugScript, "Opcode %d: Play Pipe Movie and Sound", op);
-
- uint16 soundId = argv[0];
- debugC(kDebugScript, "\tsoundId: %d", soundId);
-
- _vm->_sound->playSound(soundId);
-
- // TODO: Get Movie Location from Invoking Resource Rect, rather than
- // hardcoded 267, 170 ?
-
- // TODO: Need version of playMovie blocking which allows selection
- // of start and finish points.
- if (!_vm->_varStore->getVar(6)) {
- // Play Pipe Extending i.e. 0 to 1/2 way through file
- _vm->_video->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
- } else {
- // Play Pipe Retracting i.e. 1/2 way to end of file
- _vm->_video->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
- }
- } else
- unknown(op, var, argc, argv);
- break;
case kDniStack:
// Used in Card 5014 (Atrus)
// Hotspot Resource Used to hand Page to Atrus...
@@ -399,29 +373,6 @@ void MystScriptParser_Myst::opcode_102(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- varUnusedCheck(op, var);
-
- if (argc == 2 || argc == 3) {
- debugC(kDebugScript, "Opcode %d: Draw Full Screen Image, Optional Delay and Change Card", op);
-
- uint16 imageId = argv[0];
- uint16 cardId = argv[1];
- uint16 delay = 0;
-
- if (argc == 3)
- delay = argv[2]; // TODO: Not sure about purpose of this parameter...
-
- debugC(kDebugScript, "\timageId: %d", imageId);
- debugC(kDebugScript, "\tcardId: %d", cardId);
- debugC(kDebugScript, "\tdelay: %d", delay);
-
- _vm->_gfx->copyImageToScreen(imageId, Common::Rect(0, 0, 544, 333));
- _vm->_system->delayMillis(delay / 100);
- _vm->changeToCard(cardId, true);
- } else
- unknown(op, var, argc, argv);
- break;
case kDemoStack:
varUnusedCheck(op, var);
@@ -495,26 +446,6 @@ void MystScriptParser_Myst::opcode_104(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- varUnusedCheck(op, var);
-
- // Used on Channelwood Card 3280
- if (argc == 0) {
- debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Open Animation", op);
- Common::Rect rect = _invokingResource->getRect();
-
- // TODO: Need to load the image ids from Script Resources structure of VIEW
- for (uint16 imageId = 3595; imageId <= 3601; imageId++) {
- _vm->_gfx->copyImageToScreen(imageId, rect);
- _vm->_system->delayMillis(50);
- }
-
- // TODO: Is 8 gotten from var7 of calling hotspot, rather than hardcoded?
- _vm->_varStore->setVar(8, 1);
- _vm->_varStore->setVar(19, 1);
- } else
- unknown(op, var, argc, argv);
- break;
default:
unknown(op, var, argc, argv);
break;
@@ -809,33 +740,6 @@ void MystScriptParser_Myst::opcode_117(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- varUnusedCheck(op, var);
-
- if (argc == 1) {
- // Used on Card 3012 (Temple Hologram Monitor)
- uint16 button = argv[0]; // 0 to 3
- _vm->_varStore->setVar(17, button);
- switch (button) {
- case 0:
- _vm->_video->playMovie(_vm->wrapMovieFilename("monalgh", kChannelwoodStack), 227, 71);
- break;
- case 1:
- _vm->_video->playMovie(_vm->wrapMovieFilename("monamth", kChannelwoodStack), 227, 71);
- break;
- case 2:
- _vm->_video->playMovie(_vm->wrapMovieFilename("monasirs", kChannelwoodStack), 227, 71);
- break;
- case 3:
- _vm->_video->playMovie(_vm->wrapMovieFilename("monsmsg", kChannelwoodStack), 227, 71);
- break;
- default:
- warning("Opcode %d Control Variable Out of Range", op);
- break;
- }
- } else
- unknown(op, var, argc, argv);
- break;
default:
unknown(op, var, argc, argv);
break;
@@ -870,16 +774,6 @@ void MystScriptParser_Myst::opcode_118(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- varUnusedCheck(op, var);
-
- if (argc == 0) {
- // Used on Card 3318 (Sirrus' Room Nightstand Drawer)
- // Triggered when clicked on drawer
- // TODO: Implement function...
- } else
- unknown(op, var, argc, argv);
- break;
default:
unknown(op, var, argc, argv);
break;
@@ -906,30 +800,6 @@ void MystScriptParser_Myst::opcode_119(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- if (argc == 0) {
- // Used on Card 3333 (Temple Hologram)
- // TODO: Not 100% sure about movie position...
- switch (_vm->_varStore->getVar(17)) {
- case 0:
- _vm->_video->playMovie(_vm->wrapMovieFilename("holoalgh", kChannelwoodStack), 126, 74);
- break;
- case 1:
- _vm->_video->playMovie(_vm->wrapMovieFilename("holoamth", kChannelwoodStack), 126, 74);
- break;
- case 2:
- _vm->_video->playMovie(_vm->wrapMovieFilename("holoasir", kChannelwoodStack), 126, 74);
- break;
- case 3:
- _vm->_video->playMovie(_vm->wrapMovieFilename("holosmsg", kChannelwoodStack), 126, 74);
- break;
- default:
- warning("Opcode %d Control Variable Out of Range", op);
- break;
- }
- } else
- unknown(op, var, argc, argv);
- break;
default:
unknown(op, var, argc, argv);
break;
@@ -1007,24 +877,6 @@ void MystScriptParser_Myst::opcode_122(uint16 op, uint16 var, uint16 argc, uint1
varUnusedCheck(op, var);
switch (_vm->getCurStack()) {
- case kChannelwoodStack:
- // Used on Channelwood Card 3280
- if (argc == 0) {
- debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Close Animation", op);
- Common::Rect rect = _invokingResource->getRect();
-
- // TODO: Need to load the image ids from Script Resources structure of VIEW
- for (uint16 imageId = 3601; imageId >= 3595; imageId--) {
- _vm->_gfx->copyImageToScreen(imageId, rect);
- _vm->_system->delayMillis(50);
- }
-
- // TODO: Is 8 gotten from var7 of calling hotspot, rather than hard-coded?
- _vm->_varStore->setVar(8, 0);
- _vm->_varStore->setVar(19, 0);
- } else
- unknown(op, var, argc, argv);
- break;
case kMechanicalStack:
if (argc == 0) {
// Used on Card 6120 (Elevator)
@@ -1125,21 +977,6 @@ void MystScriptParser_Myst::opcode_127(uint16 op, uint16 var, uint16 argc, uint1
varUnusedCheck(op, var);
switch (_vm->getCurStack()) {
- case kChannelwoodStack:
- if (argc == 2) {
- // Used by Card 3262 (Elevator)
- debugC(kDebugScript, "Opcode %d: Unknown...", op);
-
- uint16 u0 = argv[0];
- uint16 u1 = argv[1];
-
- debugC(kDebugScript, "\tu0: %d", u0);
- debugC(kDebugScript, "\tu1: %d", u1);
-
- // TODO: Fill in Code...
- } else
- unknown(op, var, argc, argv);
- break;
case kMechanicalStack:
if (argc == 0) {
// Used for Mech Card 6226 (3 Crystals)
@@ -1174,20 +1011,6 @@ void MystScriptParser_Myst::opcode_129(uint16 op, uint16 var, uint16 argc, uint1
varUnusedCheck(op, var);
switch (_vm->getCurStack()) {
- case kChannelwoodStack:
- if (argc == 1) {
- // Used by Card 3262 (Elevator)
- debugC(kDebugScript, "Opcode %d: Unknown...", op);
-
- uint16 cardId = argv[0];
-
- debugC(kDebugScript, "\tcardId: %d", cardId);
-
- // TODO: Fill in Code...
- _vm->changeToCard(cardId, true);
- } else
- unknown(op, var, argc, argv);
- break;
case kMechanicalStack:
if (argc == 0) {
// Used for Mech Card 6226 (3 Crystals)
@@ -1783,29 +1606,6 @@ void MystScriptParser_Myst::opcode_201(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- // Used for Card 3247 (Elevator #1 Movement), 3161 (Bridge Movement), 3259 (Elevator #3 Movement) and 3252 (Elevator #2 Movement)
- if (argc == 0) {
- // TODO: Fill in Function. Video Playback? Rect from invoking hotspot resource...
- if (false) {
- // Card 3161
- _vm->_video->playMovie(_vm->wrapMovieFilename("bridge", kChannelwoodStack), 292, 204);
-
- // Card 3247
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev1dn", kChannelwoodStack), 214, 107);
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev1up", kChannelwoodStack), 214, 107);
-
- // Card 3252
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev2dn", kChannelwoodStack), 215, 118);
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev2up", kChannelwoodStack), 215, 118);
-
- // Card 3259
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev3dn", kChannelwoodStack), 213, 99);
- _vm->_video->playMovie(_vm->wrapMovieFilename("welev3up", kChannelwoodStack), 213, 99);
- }
- } else
- unknown(op, var, argc, argv);
- break;
case kDemoStack:
// Used on Card 2001, 2002 and 2003
if (argc == 0) {
@@ -1839,145 +1639,7 @@ void MystScriptParser_Myst::opcode_202_run(void) {
// Used for Card 6220 (Sirrus' Mechanical Bird)
// TODO: Fill in Function
break;
- case kChannelwoodStack:
- // Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
-
- // Code for Water Flow Logic
- // Var 8 = "Water Tank Valve State"
- // Controls
- // Var 19 = "Water Flowing to First Water Valve"
- // Code for this in Opcode 104 / 122
-
- // Var 19 = "Water Flowing to First Water Valve"
- // and
- // Var 9 = "First Water Valve State"
- // Controls
- // Var 20 = "Water Flowing to Second (L) Water Valve"
- // Var 3 = "Water Flowing (R) to Pump for Upper Walkway to Temple Elevator"
- uint16 var9 = _vm->_varStore->getVar(9);
- if (_vm->_varStore->getVar(19)) {
- _vm->_varStore->setVar(20, !var9);
- _vm->_varStore->setVar(3, var9);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(20, 0);
- _vm->_varStore->setVar(3, 0);
- }
-
- // Var 20 = "Water Flowing to Second (L) Water Valve"
- // and
- // Var 10 = "Second (L) Water Valve State"
- // Controls
- // Var 24 = "Water Flowing to Third (L, L) Water Valve"
- // Var 21 = "Water Flowing to Third (L, R) Water Valve"
- uint16 var10 = _vm->_varStore->getVar(10);
- if (_vm->_varStore->getVar(20)) {
- _vm->_varStore->setVar(24, !var10);
- _vm->_varStore->setVar(21, var10);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(24, 0);
- _vm->_varStore->setVar(21, 0);
- }
-
- // Var 21 = "Water Flowing to Third (L, R) Water Valve"
- // and
- // Var 11 = "Third (L, R) Water Valve State"
- // Controls
- // Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
- // Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
- uint16 var11 = _vm->_varStore->getVar(11);
- if (_vm->_varStore->getVar(21)) {
- _vm->_varStore->setVar(23, !var11);
- _vm->_varStore->setVar(22, var11);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(23, 0);
- _vm->_varStore->setVar(22, 0);
- }
-
- // Var 24 = "Water Flowing to Third (L, L) Water Valve"
- // and
- // Var 14 = "Third (L, L) Water Valve State"
- // Controls
- // Var 29 = "Water Flowing to Pipe In Water (L, L, L)"
- // Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
- uint16 var14 = _vm->_varStore->getVar(14);
- if (_vm->_varStore->getVar(24)) {
- _vm->_varStore->setVar(29, !var14);
- _vm->_varStore->setVar(28, var14);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(29, 0);
- _vm->_varStore->setVar(28, 0);
- }
-
- // Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
- // and
- // Var 12 = "Fourth (L, R, R) Water Valve State"
- // Controls
- // Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
- // Var 15 = "Water Flowing (L, R, R, R) to Pump for Lower Walkway to Upper Walkway Elevator"
- uint16 var12 = _vm->_varStore->getVar(12);
- if (_vm->_varStore->getVar(22)) {
- _vm->_varStore->setVar(25, !var12);
- _vm->_varStore->setVar(15, var12);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(25, 0);
- _vm->_varStore->setVar(15, 0);
- }
-
- // Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
- // and
- // Var 13 = "Fourth (L, R, L) Water Valve State"
- // Controls
- // Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
- // Var 26 = "Water Flowing to Pipe At Entry Point (L, R, L, R)"
- uint16 var13 = _vm->_varStore->getVar(13);
- if (_vm->_varStore->getVar(23)) {
- _vm->_varStore->setVar(27, !var13);
- _vm->_varStore->setVar(26, var13);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(27, 0);
- _vm->_varStore->setVar(26, 0);
- }
-
- // TODO: Not sure that original had OR logic for water flow at Join...
- // Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
- // Or
- // Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
- // Controls
- // Var 31 = "Water Flowing to Join (L, L, R)" // 0 to 2 = Stop Sound, Background, Background with Water Flow
- // Var 7 = "Bridge Pump Running"
- // TODO: Not sure about control of Var 31 which is tristate...
- if (_vm->_varStore->getVar(27) || _vm->_varStore->getVar(28)) {
- _vm->_varStore->setVar(31, 2); // Background with Water Flow
- _vm->_varStore->setVar(7, 1);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(31, 1); // Background
- _vm->_varStore->setVar(7, 0);
- }
-
- // TODO: Code for this shouldn't be here...
- // Move to Opcodes called by Pipe Extension...
- // Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
- // and
- // Var 6 = "Pipe Bridge Extended"
- // Controls
- // Var 32 = "Water Flowing (L, R, R, L, Pipe) State" }, // 0 to 2 = Stop Sound, Background, Background with Water Flow
- // Var 4 = "Water Flowing (L, R, R, L, Pipe Extended) to Pump for Book Room Elevator"
- // TODO: Not sure about control of Var 32 which is tristate...
- if (_vm->_varStore->getVar(25) && _vm->_varStore->getVar(6)) {
- _vm->_varStore->setVar(32, 2); // Background with Water Flow
- _vm->_varStore->setVar(4, 1);
- } else {
- // No water into Valve
- _vm->_varStore->setVar(32, 1); // Background
- _vm->_varStore->setVar(4, 0);
- }
+ default:
break;
}
}
@@ -2007,14 +1669,6 @@ void MystScriptParser_Myst::opcode_202(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- // Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
- if (argc == 0) {
- g_opcode202Parameters.var = var;
- g_opcode202Parameters.enabled = true;
- } else
- unknown(op, var, argc, argv);
- break;
default:
varUnusedCheck(op, var);
@@ -2042,12 +1696,6 @@ void MystScriptParser_Myst::opcode_203_run(void) {
// Used for Card 6043 (Weapons Rack with Snake Box)
// TODO: Fill in Logic for Snake Box...
break;
- case kChannelwoodStack:
- // Used for Card 3310 (Sirrus' Room Right Bed Drawer),
- // Card 3307 (Sirrus' Room Left Bed Drawer)
- // and Card 3318 (Sirrus' Room Nightstand Drawer)
- // TODO: Fill in Logic...
- break;
}
}
}
@@ -2072,15 +1720,6 @@ void MystScriptParser_Myst::opcode_203(uint16 op, uint16 var, uint16 argc, uint1
} else
unknown(op, var, argc, argv);
break;
- case kChannelwoodStack:
- // Used for Card 3310 (Sirrus' Room Right Bed Drawer),
- // Card 3307 (Sirrus' Room Left Bed Drawer)
- // and Card 3318 (Sirrus' Room Nightstand Drawer)
- if (argc == 0) {
- g_opcode203Parameters.enabled = true;
- } else
- unknown(op, var, argc, argv);
- break;
default:
unknown(op, var, argc, argv);
break;
@@ -2850,11 +2489,6 @@ void MystScriptParser_Myst::opcode_300(uint16 op, uint16 var, uint16 argc, uint1
varUnusedCheck(op, var);
// TODO: Fill in Logic. Clearing Variable for View?
break;
- case kChannelwoodStack:
- // Used in Card 3012 (Achenar's Holoprojector Control)
- varUnusedCheck(op, var);
- // TODO: Fill in Logic. Clearing Variable for View?
- break;
case kDniStack:
// Used in Card 5014 (Atrus Writing)
varUnusedCheck(op, var);