[Scummvm-cvs-logs] scummvm master -> 337044e11f6682e9cc9a50eeb71b4f9e8a6b94d5
ScummVM git
noreply at scummvm.org
Sat Feb 12 20:20:48 CET 2011
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d11b57e609 MOHAWK: Implement Mechanical var getters 4 and 15
337044e11f MOHAWK: Implement Mechanical opcode 125
Commit: d11b57e60935c1799b07445caf817c871391f2cf
https://github.com/scummvm/scummvm/commit/d11b57e60935c1799b07445caf817c871391f2cf
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2011-02-12T11:12:32-08:00
Commit Message:
MOHAWK: Implement Mechanical var getters 4 and 15
Changed paths:
engines/mohawk/myst_stacks/mechanical.cpp
engines/mohawk/myst_stacks/mechanical.h
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp
index 96b9883..cffcf67 100644
--- a/engines/mohawk/myst_stacks/mechanical.cpp
+++ b/engines/mohawk/myst_stacks/mechanical.cpp
@@ -38,6 +38,8 @@ namespace Mohawk {
MystScriptParser_Mechanical::MystScriptParser_Mechanical(MohawkEngine_Myst *vm) :
MystScriptParser(vm), _state(vm->_gameState->_mechanical) {
setupOpcodes();
+
+ _mystStaircaseState = false;
}
MystScriptParser_Mechanical::~MystScriptParser_Mechanical() {
@@ -102,16 +104,15 @@ void MystScriptParser_Mechanical::runPersistentScripts() {
uint16 MystScriptParser_Mechanical::getVar(uint16 var) {
switch(var) {
- case 0: // Sirrus's Secret Panel State
+ case 0: // Sirrus's Secret Panel State2
return _state.sirrusPanelState;
case 1: // Achenar's Secret Panel State
return _state.achenarPanelState;
// case 3: // Sirrus's Secret Room Crate State
// return 0;
// return 1;
-// case 4: // Myst Book Room Staircase State
-// return 0; // Staircase Up
-// return 1; // Staircase Down
+ case 4: // Myst Book Room Staircase State
+ return _mystStaircaseState;
// case 5: // Fortress Position
// return 0; // Island with Code Lock
// return 1; // Island with Last Two Symbols of Code
@@ -136,10 +137,14 @@ uint16 MystScriptParser_Mechanical::getVar(uint16 var) {
// return 3;
// return 4;
// return 5;
-// case 15: // Code Lock Execute Button State(?)
-// return 0;
-// return 1;
-// return 2;
+ case 15: // Code Lock Execute Button Script
+ if (_mystStaircaseState)
+ return 0;
+ else if (_state.codeShape[0] == 2 && _state.codeShape[1] == 8
+ && _state.codeShape[2] == 5 && _state.codeShape[3] == 1)
+ return 1;
+ else
+ return 2;
case 16: // Code Lock Shape #1 - Left
case 17: // Code Lock Shape #2
case 18: // Code Lock Shape #3
@@ -171,8 +176,8 @@ void MystScriptParser_Mechanical::toggleVar(uint16 var) {
switch(var) {
// case 3: // Sirrus's Secret Room Crate State
// temp ^= 1;
-// case 4: // Code Lock Puzzle Correct / Myst Book Room Staircase State
-// temp ^= 1;
+ case 4: // Myst Book Room Staircase State
+ _mystStaircaseState ^= 1;
case 10: // Fortress Staircase State
_state.staircaseState ^= 1;
case 16: // Code Lock Shape #1 - Left
diff --git a/engines/mohawk/myst_stacks/mechanical.h b/engines/mohawk/myst_stacks/mechanical.h
index 6ea1bc6..8af5c5e 100644
--- a/engines/mohawk/myst_stacks/mechanical.h
+++ b/engines/mohawk/myst_stacks/mechanical.h
@@ -95,6 +95,8 @@ private:
DECLARE_OPCODE(opcode_300);
MystGameState::Mechanical &_state;
+
+ bool _mystStaircaseState; // 76
};
} // End of namespace Mohawk
Commit: 337044e11f6682e9cc9a50eeb71b4f9e8a6b94d5
https://github.com/scummvm/scummvm/commit/337044e11f6682e9cc9a50eeb71b4f9e8a6b94d5
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2011-02-12T11:19:00-08:00
Commit Message:
MOHAWK: Implement Mechanical opcode 125
Changed paths:
engines/mohawk/myst_stacks/mechanical.cpp
engines/mohawk/myst_stacks/mechanical.h
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp
index cffcf67..b6209a9 100644
--- a/engines/mohawk/myst_stacks/mechanical.cpp
+++ b/engines/mohawk/myst_stacks/mechanical.cpp
@@ -55,7 +55,7 @@ void MystScriptParser_Mechanical::setupOpcodes() {
OPCODE(122, opcode_122);
OPCODE(123, opcode_123);
OPCODE(124, opcode_124);
- OPCODE(125, opcode_125);
+ OPCODE(125, o_mystStaircaseMovie);
OPCODE(126, opcode_126);
OPCODE(127, opcode_127);
OPCODE(128, opcode_128);
@@ -292,15 +292,10 @@ void MystScriptParser_Mechanical::opcode_124(uint16 op, uint16 var, uint16 argc,
unknown(op, var, argc, argv);
}
-void MystScriptParser_Mechanical::opcode_125(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- if (argc == 0) {
- // Used on Card 6267 (Code Lock)
- // Called by Red Execute Button...
- debugC(kDebugScript, "Opcode %d: Code Lock Execute...", op);
+void MystScriptParser_Mechanical::o_mystStaircaseMovie(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Myst book staircase video", op);
- // TODO: Fill in Logic For Code Lock...
- } else
- unknown(op, var, argc, argv);
+ _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("sstairs", kMechanicalStack), 199, 108);
}
void MystScriptParser_Mechanical::opcode_126(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
diff --git a/engines/mohawk/myst_stacks/mechanical.h b/engines/mohawk/myst_stacks/mechanical.h
index 8af5c5e..ef8612f 100644
--- a/engines/mohawk/myst_stacks/mechanical.h
+++ b/engines/mohawk/myst_stacks/mechanical.h
@@ -74,7 +74,7 @@ private:
DECLARE_OPCODE(opcode_122);
DECLARE_OPCODE(opcode_123);
DECLARE_OPCODE(opcode_124);
- DECLARE_OPCODE(opcode_125);
+ DECLARE_OPCODE(o_mystStaircaseMovie);
DECLARE_OPCODE(opcode_126);
DECLARE_OPCODE(opcode_127);
DECLARE_OPCODE(opcode_128);
More information about the Scummvm-git-logs
mailing list