aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorBastien Bouclet2010-11-29 20:54:52 +0000
committerBastien Bouclet2010-11-29 20:54:52 +0000
commit0ac6af59d122319715145883d986ac652f99738d (patch)
tree6049c4ad31c6b5c9fbbb77b01f381cec46067695 /engines
parent18e1f4a8c36d907df8c5498b0c0c9f264490455f (diff)
downloadscummvm-rg350-0ac6af59d122319715145883d986ac652f99738d.tar.gz
scummvm-rg350-0ac6af59d122319715145883d986ac652f99738d.tar.bz2
scummvm-rg350-0ac6af59d122319715145883d986ac652f99738d.zip
MOHAWK: Check / Fixed / Renamed some simple opcodes.
svn-id: r54614
Diffstat (limited to 'engines')
-rw-r--r--engines/mohawk/myst_scripts.cpp186
-rw-r--r--engines/mohawk/myst_scripts.h27
-rw-r--r--engines/mohawk/myst_scripts_myst.cpp35
-rw-r--r--engines/mohawk/myst_scripts_selenitic.cpp64
-rw-r--r--engines/mohawk/myst_scripts_selenitic.h4
5 files changed, 137 insertions, 179 deletions
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp
index cc1eadb79a..eafa097894 100644
--- a/engines/mohawk/myst_scripts.cpp
+++ b/engines/mohawk/myst_scripts.cpp
@@ -88,30 +88,30 @@ void MystScriptParser::setupOpcodes() {
static const MystOpcode myst_opcodes[] = {
// "Standard" Opcodes
- OPCODE(0, toggleBoolean),
- OPCODE(1, setVar),
- OPCODE(2, altDest),
+ OPCODE(0, o_0_toggleVar),
+ OPCODE(1, o_1_setVar),
+ OPCODE(2, o_2_changeCardSwitch),
OPCODE(3, takePage),
OPCODE(4, opcode_4),
// Opcode 5 Not Present
- OPCODE(6, opcode_6),
- OPCODE(7, opcode_7),
- OPCODE(8, opcode_8),
+ OPCODE(6, o_6_changeCard),
+ OPCODE(7, o_6_changeCard),
+ OPCODE(8, o_6_changeCard),
OPCODE(9, opcode_9),
- OPCODE(10, opcode_10),
+ OPCODE(10, o_10_toggleVarNoRedraw),
// Opcode 11 Not Present
- OPCODE(12, altDest),
- OPCODE(13, altDest),
- OPCODE(14, opcode_14),
- OPCODE(15, dropPage),
+ OPCODE(12, o_2_changeCardSwitch),
+ OPCODE(13, o_2_changeCardSwitch),
+ OPCODE(14, o_14_drawAreaState),
+ OPCODE(15, o_15_redrawAreaForVar),
OPCODE(16, opcode_16),
- OPCODE(17, opcode_17),
- OPCODE(18, opcode_18),
- OPCODE(19, enableHotspots),
- OPCODE(20, disableHotspots),
+ OPCODE(17, o_17_changeCardPush),
+ OPCODE(18, o_18_changeCardPop),
+ OPCODE(19, o_19_enableAreas),
+ OPCODE(20, o_20_disableAreas),
OPCODE(21, opcode_21),
- OPCODE(22, opcode_22),
- OPCODE(23, opcode_23),
+ OPCODE(22, o_6_changeCard),
+ OPCODE(23, o_23_toggleAreasActivation),
OPCODE(24, playSound),
// Opcode 25 Not Present, original calls replaceSound
OPCODE(26, opcode_26),
@@ -257,27 +257,29 @@ void MystScriptParser::NOP(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
debugC(kDebugScript, "NOP");
}
-void MystScriptParser::toggleBoolean(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_0_toggleVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
toggleVar(var);
+ _vm->redrawArea(var);
}
-void MystScriptParser::setVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- setVarValue(var, argv[0]);
+void MystScriptParser::o_1_setVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ if (setVarValue(var, argv[0])) {
+ _vm->redrawArea(var);
+ }
}
-void MystScriptParser::altDest(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 1) {
- // TODO: Work out any differences between opcode 2, 12 and 13..
- debugC(kDebugScript, "Opcode %d: altDest var %d: %d", op, var, getVar(var));
+void MystScriptParser::o_2_changeCardSwitch(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ // Opcodes 2, 12, and 13 are the same
+ uint16 value = getVar(var);
- if (getVar(var))
- _vm->changeToCard(argv[0]);
- else if (_invokingResource != NULL)
- _vm->changeToCard(_invokingResource->getDest());
- else
- warning("Missing invokingResource in altDest call");
- } else
- unknown(op, var, argc, argv);
+ debugC(kDebugScript, "Opcode %d: changeCardSwitch var %d: %d", op, var, value);
+
+ if (value)
+ _vm->changeToCard(argv[value -1 ]);
+ else if (_invokingResource != NULL)
+ _vm->changeToCard(_invokingResource->getDest());
+ else
+ warning("Missing invokingResource in altDest call");
}
void MystScriptParser::takePage(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
@@ -325,7 +327,7 @@ void MystScriptParser::opcode_4(uint16 op, uint16 var, uint16 argc, uint16 *argv
// TODO: Work out difference between Opcode 6, 7 & 8...
-void MystScriptParser::opcode_6(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_6_changeCard(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
if (argc == 0) {
@@ -340,38 +342,6 @@ void MystScriptParser::opcode_6(uint16 op, uint16 var, uint16 argc, uint16 *argv
} else
unknown(op, var, argc, argv);
}
-
-void MystScriptParser::opcode_7(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 0) {
- // Used for Selenitic Card 1244 Resource #3 Var = 5 (Sound Receiver Doors)
- // Used for Myst Card 4143 Resource #1 & #6
- debugC(kDebugScript, "Opcode %d: Change To Dest of Invoking Resource", op);
- debugC(kDebugScript, "\tVar: %d", var);
- // TODO: Var used (if non-zero?) in some way to control function...
-
- if (_invokingResource != NULL)
- _vm->changeToCard(_invokingResource->getDest());
- else
- warning("Opcode %d: Missing invokingResource", op);
- } else
- unknown(op, var, argc, argv);
-}
-
-void MystScriptParser::opcode_8(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 0) {
- // Used for Selenitic Card 1244 Resource #2 Var = 5 (Sound Receiver Doors)
- debugC(kDebugScript, "Opcode %d: Change To Dest of Invoking Resource", op);
- debugC(kDebugScript, "\tVar: %d", var);
- // TODO: Var used (if non-zero?) in some way to control function...
-
- if (_invokingResource != NULL)
- _vm->changeToCard(_invokingResource->getDest());
- else
- warning("Opcode %d: Missing invokingResource", op);
- } else
- unknown(op, var, argc, argv);
-}
-
void MystScriptParser::opcode_9(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
@@ -393,31 +363,24 @@ void MystScriptParser::opcode_9(uint16 op, uint16 var, uint16 argc, uint16 *argv
unknown(op, var, argc, argv);
}
-void MystScriptParser::opcode_10(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void MystScriptParser::o_10_toggleVarNoRedraw(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: toggleVarNoRedraw", op);
- unknown(op, var, argc, argv);
+ toggleVar(var);
}
-void MystScriptParser::opcode_14(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 1) {
- debugC(kDebugScript, "Opcode %d: Unknown, 1 Argument: %d", op, argv[0]);
- debugC(kDebugScript, "\tVar: %d", var);
+void MystScriptParser::o_14_drawAreaState(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: drawAreaState, state: %d", op, argv[0]);
+ debugC(kDebugScript, "\tVar: %d", var);
- _invokingResource->drawConditionalDataToScreen(argv[0]);
- } else
- unknown(op, var, argc, argv);
+ _invokingResource->drawConditionalDataToScreen(argv[0]);
}
-void MystScriptParser::dropPage(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 0) {
- debugC(kDebugScript, "Opcode %d: dropPage", op);
- debugC(kDebugScript, "\tvar: %d", var);
+void MystScriptParser::o_15_redrawAreaForVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: dropPage", op);
+ debugC(kDebugScript, "\tvar: %d", var);
- // TODO: Need to check where this is used
- setVarValue(var, 1);
- } else
- unknown(op, var, argc, argv);
+ _vm->redrawArea(var);
}
void MystScriptParser::opcode_16(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
@@ -448,7 +411,7 @@ void MystScriptParser::opcode_16(uint16 op, uint16 var, uint16 argc, uint16 *arg
static uint16 opcode_17_18_cardId = 0;
-void MystScriptParser::opcode_17(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_17_changeCardPush(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
if (argc == 2) {
@@ -469,7 +432,7 @@ void MystScriptParser::opcode_17(uint16 op, uint16 var, uint16 argc, uint16 *arg
unknown(op, var, argc, argv);
}
-void MystScriptParser::opcode_18(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_18_changeCardPop(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
if (argc == 1) {
@@ -484,7 +447,7 @@ void MystScriptParser::opcode_18(uint16 op, uint16 var, uint16 argc, uint16 *arg
unknown(op, var, argc, argv);
}
-void MystScriptParser::enableHotspots(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_19_enableAreas(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
if (argc > 0) {
@@ -504,7 +467,7 @@ void MystScriptParser::enableHotspots(uint16 op, uint16 var, uint16 argc, uint16
unknown(op, var, argc, argv);
}
-void MystScriptParser::disableHotspots(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_20_disableAreas(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
varUnusedCheck(op, var);
if (argc > 0) {
@@ -554,43 +517,26 @@ void MystScriptParser::opcode_21(uint16 op, uint16 var, uint16 argc, uint16 *arg
unknown(op, var, argc, argv);
}
-void MystScriptParser::opcode_22(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
-
- if (argc == 0) {
- if (_invokingResource != NULL)
- _vm->changeToCard(_invokingResource->getDest());
- else
- warning("Missing invokingResource in opcode_22 call");
- } else
- unknown(op, var, argc, argv);
-}
-
-void MystScriptParser::opcode_23(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void MystScriptParser::o_23_toggleAreasActivation(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ if (argc > 0) {
+ debugC(kDebugScript, "Opcode %d: Toggle areas activation", op);
- if (argc == 2 || argc == 4) {
- debugC(kDebugScript, "Opcode %d: Change Resource Enable States", op);
+ uint16 count = argv[0];
- // Used on Stoneship Card 2080 (Lit Ship Cabin Facing Myst Book Table)
- // Called when Table is clicked to extrude book.
+ if (argc != count + 1)
+ unknown(op, var, argc, argv);
+ else {
+ for (uint16 i = 0; i < count; i++) {
+ debugC(kDebugScript, "Enable/Disable hotspot index %d", argv[i + 1]);
- // Used on Mechanical Card 6159 (In Front of Staircase to Elevator Control)
- // Called when Button Pressed.
+ MystResource *resource = 0;
+ if (argv[i + 1] == 0xFFFF)
+ resource = _invokingResource;
+ else
+ resource = _vm->_resources[argv[i + 1]];
- for (byte i = 0; i < argc; i++) {
- debugC(kDebugScript, "\tResource %d Enable set to %d", i, argv[i]);
- switch (argv[i]) {
- case 0:
- _vm->setResourceEnabled(i, false);
- break;
- case 1:
- _vm->setResourceEnabled(i, true);
- break;
- default:
- warning("Opcode %d u%d non-boolean", op, i);
- _vm->setResourceEnabled(i, true);
- break;
+ if (resource)
+ resource->setEnabled(!resource->isEnabled());
}
}
} else
diff --git a/engines/mohawk/myst_scripts.h b/engines/mohawk/myst_scripts.h
index ea8d8b92f6..299516d284 100644
--- a/engines/mohawk/myst_scripts.h
+++ b/engines/mohawk/myst_scripts.h
@@ -78,26 +78,23 @@ public:
DECLARE_OPCODE(unknown);
- DECLARE_OPCODE(toggleBoolean);
- DECLARE_OPCODE(setVar);
- DECLARE_OPCODE(altDest);
+ DECLARE_OPCODE(o_0_toggleVar);
+ DECLARE_OPCODE(o_1_setVar);
+ DECLARE_OPCODE(o_2_changeCardSwitch);
DECLARE_OPCODE(takePage);
DECLARE_OPCODE(opcode_4);
- DECLARE_OPCODE(opcode_6);
- DECLARE_OPCODE(opcode_7);
- DECLARE_OPCODE(opcode_8);
+ DECLARE_OPCODE(o_6_changeCard);
DECLARE_OPCODE(opcode_9);
- DECLARE_OPCODE(opcode_10);
- DECLARE_OPCODE(opcode_14);
- DECLARE_OPCODE(dropPage);
+ DECLARE_OPCODE(o_10_toggleVarNoRedraw);
+ DECLARE_OPCODE(o_14_drawAreaState);
+ DECLARE_OPCODE(o_15_redrawAreaForVar);
DECLARE_OPCODE(opcode_16);
- DECLARE_OPCODE(opcode_17);
- DECLARE_OPCODE(opcode_18);
- DECLARE_OPCODE(enableHotspots);
- DECLARE_OPCODE(disableHotspots);
+ DECLARE_OPCODE(o_17_changeCardPush);
+ DECLARE_OPCODE(o_18_changeCardPop);
+ DECLARE_OPCODE(o_19_enableAreas);
+ DECLARE_OPCODE(o_20_disableAreas);
DECLARE_OPCODE(opcode_21);
- DECLARE_OPCODE(opcode_22);
- DECLARE_OPCODE(opcode_23);
+ DECLARE_OPCODE(o_23_toggleAreasActivation);
DECLARE_OPCODE(playSound);
DECLARE_OPCODE(opcode_26);
DECLARE_OPCODE(playSoundBlocking);
diff --git a/engines/mohawk/myst_scripts_myst.cpp b/engines/mohawk/myst_scripts_myst.cpp
index 18e84302ab..4357c92acc 100644
--- a/engines/mohawk/myst_scripts_myst.cpp
+++ b/engines/mohawk/myst_scripts_myst.cpp
@@ -53,31 +53,30 @@ void MystScriptParser_Myst::setupOpcodes() {
static const MystOpcode myst_opcodes[] = {
// "Standard" Opcodes
- { 0, &MystScriptParser::toggleBoolean, "toggleBoolean" },
- //OPCODE(0, toggleBoolean),
- OPCODE(1, setVar),
- OPCODE(2, altDest),
+ OPCODE(0, o_0_toggleVar),
+ OPCODE(1, o_1_setVar),
+ OPCODE(2, o_2_changeCardSwitch),
OPCODE(3, takePage),
OPCODE(4, opcode_4),
// TODO: Opcode 5 Not Present
- OPCODE(6, opcode_6),
- OPCODE(7, opcode_7),
- OPCODE(8, opcode_8),
+ OPCODE(6, o_6_changeCard),
+ OPCODE(7, o_6_changeCard),
+ OPCODE(8, o_6_changeCard),
OPCODE(9, opcode_9),
- OPCODE(10, opcode_10),
+ OPCODE(10, o_10_toggleVarNoRedraw),
// TODO: Opcode 10 to 11 Not Present
- OPCODE(12, altDest),
- OPCODE(13, altDest),
- OPCODE(14, opcode_14),
- OPCODE(15, dropPage),
+ OPCODE(12, o_2_changeCardSwitch),
+ OPCODE(13, o_2_changeCardSwitch),
+ OPCODE(14, o_14_drawAreaState),
+ OPCODE(15, o_15_redrawAreaForVar),
OPCODE(16, opcode_16),
- OPCODE(17, opcode_17),
- OPCODE(18, opcode_18),
- OPCODE(19, enableHotspots),
- OPCODE(20, disableHotspots),
+ OPCODE(17, o_17_changeCardPush),
+ OPCODE(18, o_18_changeCardPop),
+ OPCODE(19, o_19_enableAreas),
+ OPCODE(20, o_20_disableAreas),
OPCODE(21, opcode_21),
- OPCODE(22, opcode_22),
- OPCODE(23, opcode_23),
+ OPCODE(22, o_6_changeCard),
+ OPCODE(23, o_23_toggleAreasActivation),
OPCODE(24, playSound),
// TODO: Opcode 25 Not Present
OPCODE(26, opcode_26),
diff --git a/engines/mohawk/myst_scripts_selenitic.cpp b/engines/mohawk/myst_scripts_selenitic.cpp
index c365a8aa17..ffb9f21936 100644
--- a/engines/mohawk/myst_scripts_selenitic.cpp
+++ b/engines/mohawk/myst_scripts_selenitic.cpp
@@ -53,30 +53,30 @@ void MystScriptParser_Selenitic::setupOpcodes() {
static const MystOpcode myst_opcodes[] = {
// "Standard" Opcodes
- OPCODE(0, toggleBoolean),
- OPCODE(1, setVar),
- OPCODE(2, altDest),
+ OPCODE(0, o_0_toggleVar),
+ OPCODE(1, o_1_setVar),
+ OPCODE(2, o_2_changeCardSwitch),
OPCODE(3, takePage),
OPCODE(4, opcode_4),
// TODO: Opcode 5 Not Present
- OPCODE(6, opcode_6),
- OPCODE(7, opcode_7),
- OPCODE(8, opcode_8),
+ OPCODE(6, o_6_changeCard),
+ OPCODE(7, o_6_changeCard),
+ OPCODE(8, o_6_changeCard),
OPCODE(9, opcode_9),
- OPCODE(10, opcode_10),
+ OPCODE(10, o_10_toggleVarNoRedraw),
// TODO: Opcode 10 to 11 Not Present
- OPCODE(12, altDest),
- OPCODE(13, altDest),
- OPCODE(14, opcode_14),
- OPCODE(15, dropPage),
+ OPCODE(12, o_2_changeCardSwitch),
+ OPCODE(13, o_2_changeCardSwitch),
+ OPCODE(14, o_14_drawAreaState),
+ OPCODE(15, o_15_redrawAreaForVar),
OPCODE(16, opcode_16),
- OPCODE(17, opcode_17),
- OPCODE(18, opcode_18),
- OPCODE(19, enableHotspots),
- OPCODE(20, disableHotspots),
+ OPCODE(17, o_17_changeCardPush),
+ OPCODE(18, o_18_changeCardPop),
+ OPCODE(19, o_19_enableAreas),
+ OPCODE(20, o_20_disableAreas),
OPCODE(21, opcode_21),
- OPCODE(22, opcode_22),
- OPCODE(23, opcode_23),
+ OPCODE(22, o_6_changeCard),
+ OPCODE(23, o_23_toggleAreasActivation),
OPCODE(24, playSound),
// TODO: Opcode 25 Not Present
OPCODE(26, opcode_26),
@@ -192,6 +192,11 @@ uint16 MystScriptParser_Selenitic::getVar(uint16 var) {
return 1;
case 26:
return _sound_receiver_sigma_pressed;
+ case 27:
+ case 29: // Maze runner door
+ return 0;
+ case 30:
+ return _maze_runner_door_opened;
default:
return MystScriptParser::getVar(var);
}
@@ -290,6 +295,9 @@ bool MystScriptParser_Selenitic::setVarValue(uint16 var, uint16 value) {
case 24:
selenitic_vars[17] = value;
break;
+ case 30:
+ _maze_runner_door_opened = value;
+ break;
default:
refresh = MystScriptParser::setVarValue(var, value);
break;
@@ -435,14 +443,10 @@ void MystScriptParser_Selenitic::sound_receiver_draw_view() {
}
void MystScriptParser_Selenitic::sound_receiver_draw_angle() {
- draw_digit(_sound_receiver_angle_1);
- draw_digit(_sound_receiver_angle_2);
- draw_digit(_sound_receiver_angle_3);
- draw_digit(_sound_receiver_angle_4);
-}
-
-void MystScriptParser_Selenitic::draw_digit(MystResource *_resource) {
- _resource->drawConditionalDataToScreen(getVar(_resource->getType8Var()));
+ _vm->redrawResource(_sound_receiver_angle_1);
+ _vm->redrawResource(_sound_receiver_angle_2);
+ _vm->redrawResource(_sound_receiver_angle_3);
+ _vm->redrawResource(_sound_receiver_angle_4);
}
/**
@@ -465,6 +469,8 @@ void MystScriptParser_Selenitic::o_105_109_soundReceiverSource(uint16 op, uint16
if (selenitic_vars[7] != pressed_button) {
selenitic_vars[7] = pressed_button;
+ _sound_receiver_current_source->drawConditionalDataToScreen(0);
+
_sound_receiver_position = &selenitic_vars[8 + pressed_button];
_sound_receiver_current_source = _sound_receiver_sources[pressed_button];
@@ -572,6 +578,8 @@ MystResourceType10 *MystScriptParser_Selenitic::soundLockSliderFromVar(uint16 va
}
void MystScriptParser_Selenitic::o_112_soundLockMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Sound lock move", op);
+
MystResourceType10 *slider = soundLockSliderFromVar(var);
uint16 soundId = soundLockCurrentSound(slider->_pos.y, true);
@@ -582,6 +590,8 @@ void MystScriptParser_Selenitic::o_112_soundLockMove(uint16 op, uint16 var, uint
}
void MystScriptParser_Selenitic::o_113_soundLockStartMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Sound lock start move", op);
+
MystResourceType10 *slider = soundLockSliderFromVar(var);
_vm->_gfx->changeCursor(700);
@@ -592,6 +602,8 @@ void MystScriptParser_Selenitic::o_113_soundLockStartMove(uint16 op, uint16 var,
}
void MystScriptParser_Selenitic::o_114_soundLockEndMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Sound lock end move", op);
+
uint16 *selenitic_vars = _vm->_saveLoad->_v->selenitic_vars;
MystResourceType10 *slider = soundLockSliderFromVar(var);
uint16 *value = 0;
@@ -648,6 +660,8 @@ void MystScriptParser_Selenitic::soundLockCheckSolution(MystResourceType10 *slid
}
void MystScriptParser_Selenitic::o_115_soundLockButton(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Sound lock button", op);
+
uint16 *selenitic_vars = _vm->_saveLoad->_v->selenitic_vars;
bool solved = true;
diff --git a/engines/mohawk/myst_scripts_selenitic.h b/engines/mohawk/myst_scripts_selenitic.h
index 4e2f06393e..33eb2977b6 100644
--- a/engines/mohawk/myst_scripts_selenitic.h
+++ b/engines/mohawk/myst_scripts_selenitic.h
@@ -93,6 +93,8 @@ private:
MystResource *_sound_receiver_angle_4; // 152
MystResource *_sound_receiver_sigma_button; // 156
+ bool _maze_runner_door_opened; //160
+
uint16 _sound_lock_sound_id;
MystResourceType10 *_sound_lock_slider_1; // 164
MystResourceType10 *_sound_lock_slider_2; // 168
@@ -114,7 +116,7 @@ private:
MystResourceType10 *soundLockSliderFromVar(uint16 var);
void soundLockCheckSolution(MystResourceType10 *slider, uint16 value, uint16 solution, bool &solved);
- void draw_digit(MystResource *_resource);
+ void redrawResource(MystResource *_resource);
};
}