[Scummvm-cvs-logs] SF.net SVN: scummvm:[48087] scummvm/trunk/engines/mohawk

tdhs at users.sourceforge.net tdhs at users.sourceforge.net
Fri Feb 19 00:31:51 CET 2010


Revision: 48087
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48087&view=rev
Author:   tdhs
Date:     2010-02-18 23:31:51 +0000 (Thu, 18 Feb 2010)

Log Message:
-----------
Mohawk : Update with work on Myst EXIT opcodes to work out purpose.

Modified Paths:
--------------
    scummvm/trunk/engines/mohawk/myst_scripts.cpp
    scummvm/trunk/engines/mohawk/myst_vars.cpp

Modified: scummvm/trunk/engines/mohawk/myst_scripts.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-02-17 23:38:43 UTC (rev 48086)
+++ scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-02-18 23:31:51 UTC (rev 48087)
@@ -3383,6 +3383,7 @@
 	case kIntroStack:
 		_vm->_system->delayMillis(4 * 1000);
 		_vm->_gfx->copyImageToScreen(4, Common::Rect(0, 0, 544, 333));
+		// TODO : Wait until video ends, then change to card 5
 		break;
 	case kSeleniticStack:
 		// Used for Card 1191 (Maze Runner)
@@ -3696,7 +3697,11 @@
 			break;
 		case kMystStack:
 			// Used for Card 4138 (Dock Forechamber Door)
-			// TODO: Fill in Logic..
+			// TODO: Fill in Logic. Slide for Dock Forechamber Door?
+			// Original has Left to Right Open Slide and Upon leaving card,
+			// Right to left Slide before card change.
+			//debugC(kDebugScript, "Opcode %d: Clear Dock Forechamber Door Variable", op);
+			//_vm->_varStore->setVar(105, 0);
 			break;
 		case kMechanicalStack:
 			// Used for Card 6043 (Weapons Rack with Snake Box)
@@ -3798,7 +3803,7 @@
 			break;
 		case kMystStack:
 			// Used for Card 4134 and 4149 (Dock)
-			// TODO: Fill in..
+			// TODO: Not sure of function. Not Gulls (at least directly). Fill in Logic.
 			break;
 		case kMechanicalStack:
 			// TODO: Fill in Logic.
@@ -3839,17 +3844,6 @@
 		break;
 	case kMystStack:
 		// Used for Card 4134 and 4149 (Dock)
-		// TODO: Fill in logic.. Unsure of exact function to trigger and location on screen..
-		if (false) {
-			// Card 4134
-			_vm->_video->playMovie(_vm->wrapMovieFilename("birds1", kMystStack), 416, 0);
-
-			// Card 4149
-			_vm->_video->playMovie(_vm->wrapMovieFilename("birds2", kMystStack), 433, 0);
-
-			// Unsure...
-			_vm->_video->playMovie(_vm->wrapMovieFilename("birds3", kMystStack), 0, 0);
-		}
 		break;
 	case kMechanicalStack:
 		// Used for Card 6180 (Lower Elevator Puzzle)
@@ -4473,7 +4467,15 @@
 	switch (_vm->getCurStack()) {
 	case kMystStack:
 		// Used for Card 4134 (Dock Facing Marker Switch)
-		// TODO: Fill in logic. Logic for Gull Videos?
+		// TODO: Fill in logic for Gull Videos.
+		//       may be offset and overlap and need video update to all these
+		//       to run in sequence with opcode215_run() process...
+		if (false) {
+			// All birds(x) videos are 120x48 and played in top right corner of card
+			_vm->_video->playMovie(_vm->wrapMovieFilename("birds1", kMystStack), 544-120-1, 0);
+			_vm->_video->playMovie(_vm->wrapMovieFilename("birds2", kMystStack), 544-120-1, 0);
+			_vm->_video->playMovie(_vm->wrapMovieFilename("birds3", kMystStack), 544-120-1, 0);
+		}
 		break;
 	default:
 		unknown(op, var, argc, argv);
@@ -4486,9 +4488,18 @@
 
 	switch (_vm->getCurStack()) {
 	case kMystStack:
-		// Used for Card 4571 (Channelwood Tree)
+		// Used for Cards 4571 (Channelwood Tree), 4586 (Channelwood Tree), 
+		// 4615 (Channelwood Tree) and 4601 (Channelwood Tree)
 		if (argc == 0) {
-			// TODO: Fill in logic for Tree Position From Far...
+			// TODO: Fill in logic for Channelwood Tree Position i.e. Var 72 update // 0 to 12, 4 for Alcove
+			// Based on Timer code and following variables :
+			// 98  "Cabin Boiler Pilot Light Lit"
+			// 99  "Cabin Boiler Gas Valve Position" }, // 0 to 5
+			// 305 "Cabin Boiler Lit" },
+			// 306 "Cabin Boiler Steam Sound Control" }, // 0 to 27
+			// 307 "Cabin Boiler Needle Position i.e. Fully Pressurised" }, // 0 to 1
+
+			// Note : Opcode 218 does boiler update code..
 		} else
 			unknown(op, var, argc, argv);
 		break;
@@ -4686,9 +4697,9 @@
 	case kMystStack:
 		// Used in Card 4371 (Blue Book) Var = 101
 		//     and Card 4363 (Red Book)  Var = 100
-		// TODO: Fill in Logic
 		debugC(kDebugScript, "Opcode %d: Book Exit Function...", op);
 		debugC(kDebugScript, "Var: %d", var);
+		// TODO: Fill in Logic
 		break;
 	case kStoneshipStack:
 		// Used in Card 2218 (Telescope view)
@@ -4727,7 +4738,7 @@
 	switch (_vm->getCurStack()) {
 	case kDemoPreviewStack:
 	case kMystStack:
-		// Used in Card 4080 (Fireplace Book) and Other Myst Library Books
+		// Used in Cards 4047, 4059, 4060, 4068 and 4080 (Myst Library Books - Open)
 		// TODO: Fill in Logic. Clear Variable on Book exit.. or Copy from duplicate..
 		_vm->_varStore->setVar(0, 1);
 		break;
@@ -4756,12 +4767,10 @@
 
 	switch (_vm->getCurStack()) {
 	case kMystStack:
+		// Used for Card 4134 (Dock Facing Marker Switch)
 		// Used for Card 4141 (Myst Dock Facing Sea)
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Clear Dock Forechamber Door Variable", op);
-			_vm->_varStore->setVar(105, 0);
-		} else
-			unknown(op, var, argc, argv);
+		// In the original engine, this opcode stopped Gull Movies if playing,
+		// upon card change, but this behaviour is now default in this engine.
 		break;
 	default:
 		unknown(op, var, argc, argv);
@@ -4811,11 +4820,8 @@
 	switch (_vm->getCurStack()) {
 	case kMystStack:
 		// Used for Card 4098 (Cabin Boiler Puzzle)
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-			// TODO: Logic for clearing variable?
-		} else
-			unknown(op, var, argc, argv);
+		// In the original engine, this opcode stopped the Boiler Fire and Meter Needle videos
+		// if playing, upon card change, but this behaviour is now default in this engine.
 		break;
 	default:
 		unknown(op, var, argc, argv);
@@ -4828,7 +4834,7 @@
 
 	switch (_vm->getCurStack()) {
 	case kMystStack:
-		// Used for Card 4299 (Generator Room Controls)
+		// Used for Card 4297 (Generator Room Controls)
 		if (argc == 0) {
 			debugC(kDebugScript, "Opcode %d: Unknown...", op);
 			// TODO: Logic for clearing variable?
@@ -4847,11 +4853,8 @@
 	switch (_vm->getCurStack()) {
 	case kMystStack:
 		// Used for Card 4530 (Rocketship Music Sliders)
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-			// TODO: Logic for clearing variable?
-		} else
-			unknown(op, var, argc, argv);
+		// In the original engine, this opcode stopped the Selenitic Book Movie if playing,
+		// upon card change, but this behaviour is now default in this engine.
 		break;
 	default:
 		unknown(op, var, argc, argv);
@@ -4864,12 +4867,9 @@
 
 	switch (_vm->getCurStack()) {
 	case kMystStack:
-		// Used for Card 4168 (Green D'ni Book Open), Red Book Open and Blue Book Open
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-			// TODO: Logic for clearing variable?
-		} else
-			unknown(op, var, argc, argv);
+		// Used for Card 4168 (Green D'ni Book Open)
+		// In the original engine, this opcode stopped the Green Book Atrus Movies if playing,
+		// upon card change, but this behaviour is now default in this engine.
 		break;
 	default:
 		unknown(op, var, argc, argv);
@@ -4883,11 +4883,9 @@
 	switch (_vm->getCurStack()) {
 	case kMystStack:
 		// Used for Card 4698 (Dock Forechamber Imager)
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-			// TODO: Logic for clearing variable?
-		} else
-			unknown(op, var, argc, argv);
+		// In the original engine, this opcode stopped the Imager Movie if playing,
+		// especially the hardcoded Topological Extrusion (Mountain) video,
+		// upon card change, but this behaviour is now default in this engine.
 		break;
 	default:
 		unknown(op, var, argc, argv);

Modified: scummvm/trunk/engines/mohawk/myst_vars.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_vars.cpp	2010-02-17 23:38:43 UTC (rev 48086)
+++ scummvm/trunk/engines/mohawk/myst_vars.cpp	2010-02-18 23:31:51 UTC (rev 48087)
@@ -199,7 +199,7 @@
 	{  48, 0, "Marker Switch on Dock - Duplicate of Var #4?" }, // 0 to 2
 	{  49, 0, "Generator Running" }, // Boolean used for Sound..
 // 50 = TODO: ?
-	{  51, 2, "Forechamber Imager Movie Control Variable" }, // 0 to 4 = Blank, No Function? / Mountain?, Water, Atrus, Marker Switch
+	{  51, 2, "Forechamber Imager Movie Control Variable" }, // 0 to 4 = Blank, Mountain, Water, Atrus, Marker Switch
 	{  52, 0, "Generator Switch #1" },
 	{  53, 0, "Generator Switch #2" },
 	{  54, 0, "Generator Switch #3" },


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list