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

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Tue Jun 22 07:10:43 CEST 2010


Revision: 50136
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50136&view=rev
Author:   mthreepwood
Date:     2010-06-22 05:10:43 +0000 (Tue, 22 Jun 2010)

Log Message:
-----------
Finish implementation of the jspit elevator logic.

Modified Paths:
--------------
    scummvm/trunk/engines/mohawk/riven_external.cpp

Modified: scummvm/trunk/engines/mohawk/riven_external.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/riven_external.cpp	2010-06-22 00:19:26 UTC (rev 50135)
+++ scummvm/trunk/engines/mohawk/riven_external.cpp	2010-06-22 05:10:43 UTC (rev 50136)
@@ -1043,8 +1043,10 @@
 void RivenExternal::xhandlecontrolup(uint16 argc, uint16 *argv) {
 	int changeLevel = jspitElevatorLoop();
 
+	// If we've moved the handle down, go down a floor
 	if (changeLevel == -1) {
-		// TODO: Run movie
+		_vm->_video->playMovieBlocking(1);
+		_vm->_video->playMovieBlocking(2);
 		_vm->changeToCard(_vm->matchRMAPToCard(0x1e374));
 	}
 }
@@ -1052,8 +1054,10 @@
 void RivenExternal::xhandlecontroldown(uint16 argc, uint16 *argv) {
 	int changeLevel = jspitElevatorLoop();
 
+	// If we've moved the handle up, go up a floor
 	if (changeLevel == 1) {
-		// TODO: Run movie
+		_vm->_video->playMovieBlocking(1);
+		_vm->_video->playMovieBlocking(2);
 		_vm->changeToCard(_vm->matchRMAPToCard(0x1e374));
 	}
 }
@@ -1061,11 +1065,29 @@
 void RivenExternal::xhandlecontrolmid(uint16 argc, uint16 *argv) {
 	int changeLevel = jspitElevatorLoop();
 
+	if (changeLevel == 0)
+		return;
+
+	// Play the handle moving video
+	if (changeLevel == 1)
+		_vm->_video->playMovieBlocking(7);
+	else
+		_vm->_video->playMovieBlocking(6);
+
+	// If the whark's mouth is open, close it
+	uint32 *mouthVar = _vm->matchVarToString("jwmouth");
+	if (*mouthVar == 1) {
+		_vm->_video->playMovieBlocking(3);
+		_vm->_video->playMovieBlocking(8);
+		*mouthVar = 0;
+	}
+
+	// Play the elevator video and then change the card
 	if (changeLevel == 1) {
-		// TODO: Run movie
+		_vm->_video->playMovieBlocking(5);
 		_vm->changeToCard(_vm->matchRMAPToCard(0x1e597));
-	} else if (changeLevel == -1) {
-		// TODO: Run movie
+	} else {
+		_vm->_video->playMovieBlocking(4);
 		_vm->changeToCard(_vm->matchRMAPToCard(0x1e29c));
 	}
 }


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