[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