[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