[Scummvm-cvs-logs] SF.net SVN: scummvm:[54643] scummvm/trunk/engines/mohawk
bgk at users.sourceforge.net
bgk at users.sourceforge.net
Mon Nov 29 22:02:25 CET 2010
Revision: 54643
http://scummvm.svn.sourceforge.net/scummvm/?rev=54643&view=rev
Author: bgk
Date: 2010-11-29 21:02:25 +0000 (Mon, 29 Nov 2010)
Log Message:
-----------
MOHAWK: Play videos when the maze runner moves.
Modified Paths:
--------------
scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp
scummvm/trunk/engines/mohawk/myst_scripts_selenitic.h
Modified: scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp 2010-11-29 21:02:11 UTC (rev 54642)
+++ scummvm/trunk/engines/mohawk/myst_scripts_selenitic.cpp 2010-11-29 21:02:25 UTC (rev 54643)
@@ -353,7 +353,7 @@
}
void MystScriptParser_Selenitic::o_100_mazeRunnerMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- // uint16 oldPosition = _maze_runner_position;
+ uint16 oldPosition = _maze_runner_position;
uint16 move = var;
uint16 videoToNext = _mazeRunnerVideos[_maze_runner_position][move];
@@ -361,6 +361,8 @@
if (videoToNext) {
_maze_runner_compass->drawConditionalDataToScreen(8);
+
+ mazeRunnerPlayVideo(videoToNext, oldPosition);
mazeRunnerUpdateCompass();
if (move == 0 || move == 3)
@@ -368,6 +370,138 @@
}
}
+void MystScriptParser_Selenitic::mazeRunnerPlayVideo(uint16 video, uint16 pos) {
+ Common::String file;
+
+ switch (video) {
+ case 1:
+ file = _vm->wrapMovieFilename("forwa1", kSeleniticStack);
+ break;
+ case 2:
+ file = _vm->wrapMovieFilename("forwe0", kSeleniticStack);
+ break;
+ case 3:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forwf1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forwf0", kSeleniticStack);
+ }
+ break;
+ case 4:
+ file = _vm->wrapMovieFilename("left00", kSeleniticStack);
+ break;
+ case 5:
+ file = _vm->wrapMovieFilename("left01", kSeleniticStack);
+ break;
+ case 6:
+ file = _vm->wrapMovieFilename("left10", kSeleniticStack);
+ break;
+ case 7:
+ file = _vm->wrapMovieFilename("left11", kSeleniticStack);
+ break;
+ case 8:
+ file = _vm->wrapMovieFilename("right00", kSeleniticStack);
+ break;
+ case 9:
+ file = _vm->wrapMovieFilename("right01", kSeleniticStack);
+ break;
+ case 10:
+ file = _vm->wrapMovieFilename("right10", kSeleniticStack);
+ break;
+ case 11:
+ file = _vm->wrapMovieFilename("right11", kSeleniticStack);
+ break;
+ case 12:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forwo1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forwo0", kSeleniticStack);
+ }
+ break;
+ case 13:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forwp1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forwp0", kSeleniticStack);
+ }
+ break;
+ case 14:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forws1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forws0", kSeleniticStack);
+ }
+ break;
+ case 15:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forwr1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forwr0", kSeleniticStack);
+ }
+ break;
+ case 16:
+ if (mazeRunnerForwardAllowed(_maze_runner_position)) {
+ file = _vm->wrapMovieFilename("forwl1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("forwl0", kSeleniticStack);
+ }
+ break;
+ case 17:
+ file = _vm->wrapMovieFilename("backa1", kSeleniticStack);
+ break;
+ case 18:
+ file = _vm->wrapMovieFilename("backe1", kSeleniticStack);
+ break;
+ case 19:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backf1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backf0", kSeleniticStack);
+ }
+ break;
+ case 20:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backo1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backo0", kSeleniticStack);
+ }
+ break;
+ case 21:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backp1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backp0", kSeleniticStack);
+ }
+ break;
+ case 22:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backs1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backs0", kSeleniticStack);
+ }
+ break;
+ case 23:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backr1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backr0", kSeleniticStack);
+ }
+ break;
+ case 24:
+ if (mazeRunnerForwardAllowed(pos)) {
+ file = _vm->wrapMovieFilename("backl1", kSeleniticStack);
+ } else {
+ file = _vm->wrapMovieFilename("backl0", kSeleniticStack);
+ }
+ break;
+ }
+
+ if (file != "") {
+ const Common::Rect &dest = _maze_runner_window->getRect();
+ _vm->_video->playMovie(file, dest.left, dest.top, false);
+ }
+}
+
void MystScriptParser_Selenitic::mazeRunnerUpdateCompass() {
if (_maze_runner_position == 288 || _maze_runner_position == 289) {
_maze_runner_direction = 8;
Modified: scummvm/trunk/engines/mohawk/myst_scripts_selenitic.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts_selenitic.h 2010-11-29 21:02:11 UTC (rev 54642)
+++ scummvm/trunk/engines/mohawk/myst_scripts_selenitic.h 2010-11-29 21:02:25 UTC (rev 54643)
@@ -129,6 +129,7 @@
bool mazeRunnerForwardAllowed(uint16 position);
void mazeRunnerUpdateCompass();
void mazeRunnerPlaySoundHelp();
+ void mazeRunnerPlayVideo(uint16 video, uint16 pos);
};
}
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