[Scummvm-cvs-logs] SF.net SVN: scummvm:[54617] scummvm/trunk/engines/mohawk
bgk at users.sourceforge.net
bgk at users.sourceforge.net
Mon Nov 29 21:55:50 CET 2010
Revision: 54617
http://scummvm.svn.sourceforge.net/scummvm/?rev=54617&view=rev
Author: bgk
Date: 2010-11-29 20:55:50 +0000 (Mon, 29 Nov 2010)
Log Message:
-----------
MOHAWK: Describe Myst opcode 9
Modified Paths:
--------------
scummvm/trunk/engines/mohawk/myst_areas.cpp
scummvm/trunk/engines/mohawk/myst_areas.h
scummvm/trunk/engines/mohawk/myst_scripts.cpp
scummvm/trunk/engines/mohawk/myst_scripts.h
scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp
scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp
Modified: scummvm/trunk/engines/mohawk/myst_areas.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_areas.cpp 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_areas.cpp 2010-11-29 20:55:50 UTC (rev 54617)
@@ -135,12 +135,12 @@
_left = rlstStream->readUint16LE() % 10000;
_top = rlstStream->readUint16LE() % 10000;
_loop = rlstStream->readUint16LE();
- _u0 = rlstStream->readUint16LE();
+ _direction = rlstStream->readUint16LE();
_playBlocking = rlstStream->readUint16LE();
_playOnCardChange = rlstStream->readUint16LE();
_u3 = rlstStream->readUint16LE();
- if (_u0 != 1)
+ if (_direction != 1)
warning("Type 6 _u0 != 1");
if (_u3 != 0)
warning("Type 6 _u3 != 0");
@@ -149,7 +149,7 @@
debugC(kDebugResource, "\tleft: %d", _left);
debugC(kDebugResource, "\ttop: %d", _top);
debugC(kDebugResource, "\tloop: %d", _loop);
- debugC(kDebugResource, "\tu0: %d", _u0);
+ debugC(kDebugResource, "\tdirection: %d", _direction);
debugC(kDebugResource, "\tplayBlocking: %d", _playBlocking);
debugC(kDebugResource, "\tplayOnCardChange: %d", _playOnCardChange);
debugC(kDebugResource, "\tu3: %d", _u3);
Modified: scummvm/trunk/engines/mohawk/myst_areas.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_areas.h 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_areas.h 2010-11-29 20:55:50 UTC (rev 54617)
@@ -84,7 +84,7 @@
uint16 _left;
uint16 _top;
uint16 _loop;
- uint16 _u0;
+ uint16 _direction; // 1 => forward, -1 => backwards
uint16 _playBlocking;
uint16 _playOnCardChange;
uint16 _u3;
Modified: scummvm/trunk/engines/mohawk/myst_scripts.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.cpp 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_scripts.cpp 2010-11-29 20:55:50 UTC (rev 54617)
@@ -97,7 +97,7 @@
OPCODE(6, o_6_changeCard),
OPCODE(7, o_6_changeCard),
OPCODE(8, o_6_changeCard),
- OPCODE(9, opcode_9),
+ OPCODE(9, o_9_triggerMovie),
OPCODE(10, o_10_toggleVarNoRedraw),
// Opcode 11 Not Present
OPCODE(12, o_2_changeCardSwitch),
@@ -340,27 +340,19 @@
} else
unknown(op, var, argc, argv);
}
-void MystScriptParser::opcode_9(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+void MystScriptParser::o_9_triggerMovie(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Trigger Type 6 Resource Movie..", op);
// If movie has sound, pause background music
- varUnusedCheck(op, var);
+ int16 direction = 1;
+ if (argc == 1) {
+ direction = argv[0];
+ }
+ debugC(kDebugScript, "\tDirection: %d", direction);
- if (argc == 0 || argc == 1) {
- debugC(kDebugScript, "Opcode %d: Trigger Type 6 Resource Movie..", op);
- // TODO: Add Logic to do this...
+ // Trigger resource 6 movie overriding play direction
- // Used on Stoneship Card 2138 with 1 argument of 66535 as well as with
- // no arguments. Seems logically consistent with play movie with optional
- // start point or time direction control?
-
- // This understanding of this opcode is based upon Stoneship Card 2197
- // i.e. Sirrus' Desk, but since this is a single case, we should find
- // more...
- if (!((_vm->getCurStack() == kStoneshipStack && _vm->getCurCard() == 2197) ||
- (_vm->getCurStack() == kStoneshipStack && _vm->getCurCard() == 2138)))
- warning("TODO: Opcode 9 on this card - Check function is consistent");
- } else
- unknown(op, var, argc, argv);
+ // If movie has sound, resume background music
}
void MystScriptParser::o_10_toggleVarNoRedraw(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
Modified: scummvm/trunk/engines/mohawk/myst_scripts.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.h 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_scripts.h 2010-11-29 20:55:50 UTC (rev 54617)
@@ -84,7 +84,7 @@
DECLARE_OPCODE(takePage);
DECLARE_OPCODE(opcode_4);
DECLARE_OPCODE(o_6_changeCard);
- DECLARE_OPCODE(opcode_9);
+ DECLARE_OPCODE(o_9_triggerMovie);
DECLARE_OPCODE(o_10_toggleVarNoRedraw);
DECLARE_OPCODE(o_14_drawAreaState);
DECLARE_OPCODE(o_15_redrawAreaForVar);
Modified: scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp 2010-11-29 20:55:50 UTC (rev 54617)
@@ -62,7 +62,7 @@
OPCODE(6, o_6_changeCard),
OPCODE(7, o_6_changeCard),
OPCODE(8, o_6_changeCard),
- OPCODE(9, opcode_9),
+ OPCODE(9, o_9_triggerMovie),
OPCODE(10, o_10_toggleVarNoRedraw),
// TODO: Opcode 10 to 11 Not Present
OPCODE(12, o_2_changeCardSwitch),
Modified: scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp 2010-11-29 20:55:31 UTC (rev 54616)
+++ scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp 2010-11-29 20:55:50 UTC (rev 54617)
@@ -62,7 +62,7 @@
OPCODE(6, o_6_changeCard),
OPCODE(7, o_6_changeCard),
OPCODE(8, o_6_changeCard),
- OPCODE(9, opcode_9),
+ OPCODE(9, o_9_triggerMovie),
OPCODE(10, o_10_toggleVarNoRedraw),
// TODO: Opcode 10 to 11 Not Present
OPCODE(12, o_2_changeCardSwitch),
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